UNPKG

antlr-ng

Version:

Next generation ANTLR Tool

126 lines (125 loc) 2.41 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); import { format } from "../../support/helpers.js"; import { Target } from "../Target.js"; class PHPTarget extends Target { static { __name(this, "PHPTarget"); } static reservedWords = /* @__PURE__ */ new Set([ "abstract", "and", "array", "as", "break", "callable", "case", "catch", "class", "clone", "const", "continue", "declare", "default", "die", "do", "echo", "else", "elseif", "empty", "enddeclare", "endfor", "endforeach", "endif", "endswitch", "endwhile", "eval", "exit", "extends", "final", "finally", "for", "foreach", "function", "global", "goto", "if", "implements", "include", "include_once", "instanceof", "insteadof", "interface", "isset", "list", "namespace", "new", "or", "print", "private", "protected", "public", "require", "require_once", "return", "static", "switch", "throw", "trait", "try", "unset", "use", "var", "while", "xor", "yield", "__halt_compiler", "__CLASS__", "__DIR__", "__FILE__", "__FUNCTION__", "__LINE__", "__METHOD__", "__NAMESPACE__", "__TRAIT__", "rule", "parserRule" ]); static targetCharValueEscape = /* @__PURE__ */ new Map([ // https://www.php.net/manual/en/language.types.string.php [11, "v"], [27, "e"], [36, "$"] ]); constructor(gen) { super(gen); } getTargetCharValueEscape() { return new Map([...Target.defaultCharValueEscape, ...PHPTarget.targetCharValueEscape]); } supportsOverloadedMethods() { return false; } getTargetStringLiteralFromANTLRStringLiteral(generator, literal, addQuotes, escapeSpecial) { let targetStringLiteral = super.getTargetStringLiteralFromANTLRStringLiteral( generator, literal, addQuotes, escapeSpecial ); targetStringLiteral = targetStringLiteral.replaceAll("$", "\\$"); return targetStringLiteral; } isATNSerializedAsInts() { return true; } get reservedWords() { return PHPTarget.reservedWords; } escapeChar(v) { return format("\\u{%X}", v); } } export { PHPTarget };