diff options
Diffstat (limited to 'tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg')
-rw-r--r-- | tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg index 2e10728..38c9ad8 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg @@ -36,12 +36,12 @@ * REQUIRED. */ -pythonTypeInitMap ::= [ - "bool":"False", +javascriptTypeInitMap ::= [ + "bool":"false", "int":"0", "float":"0.0", "str":"", - default:"None" // anything other than a primitive type is an object + default:"{}" // anything other than a primitive type is an object ] // args must be <object-model-object>, <fields-resulting-in-STs> @@ -360,7 +360,7 @@ switch (this._input.LA(1)) { <alt> break;}; separator="\n"> default: - <error> + break; } >> @@ -530,7 +530,7 @@ else { Wildcard(w) ::= << this.state = <w.stateNumber>; -<if(w.labels)><w.labels:{l | <labelref(l)> = }><endif>matchWildcard(); +<if(w.labels)><w.labels:{l | <labelref(l)> = }><endif>this.matchWildcard(); >> // ACTION STUFF @@ -802,6 +802,9 @@ var antlr4 = require('antlr4/index'); >> Lexer(lexer, atn, actionFuncs, sempredFuncs, superClass) ::= << +<if(superClass)> +var <superClass> = require('./<superClass>').<superClass>; +<endif> <atn> @@ -818,11 +821,25 @@ function <lexer.name>(input) { <lexer.name>.prototype = Object.create(<if(superClass)><superClass><else>antlr4.Lexer<endif>.prototype); <lexer.name>.prototype.constructor = <lexer.name>; +Object.defineProperty(<lexer.name>.prototype, "atn", { + get : function() { + return atn; + } +}); + <lexer.name>.EOF = antlr4.Token.EOF; <lexer.tokens:{k | <lexer.name>.<k> = <lexer.tokens.(k)>;}; separator="\n", wrap, anchor> +<if(lexer.channels)> +<lexer.channels:{c| <lexer.name>.<c> = <lexer.channels.(c)>;}; separator="\n"> + +<endif> +<if(rest(lexer.modes))> <rest(lexer.modes):{m| <lexer.name>.<m> = <i>;}; separator="\n"> +<endif> +<lexer.name>.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"<if (lexer.channels)>, <lexer.channels:{c| "<c>"}; separator=", ", wrap, anchor><endif> ]; + <lexer.name>.prototype.modeNames = [ <lexer.modes:{m| "<m>"}; separator=", ", wrap, anchor> ]; <lexer.name>.prototype.literalNames = [ <lexer.literalNames:{t | <t>}; null="null", separator=", ", wrap, anchor> ]; @@ -852,7 +869,7 @@ var serializedATN = ["<model.serialized; wrap={",<\n> "}>"].join(""); * must be an object, default value is "null". */ initValue(typeName) ::= << -<javaTypeInitMap.(typeName)> +<javacriptTypeInitMap.(typeName)> >> codeFileExtension() ::= ".js" |