summaryrefslogtreecommitdiff
path: root/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg
diff options
context:
space:
mode:
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.stg29
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"