All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.pmd.lang.ecmascript5.ast.Ecmascript5.jj Maven / Gradle / Ivy

There is a newer version: 7.7.0
Show newest version
//Copied from https://github.com/DigiArea/es5-model/blob/master/com.digiarea.es5/src/com/digiarea/es5/parser/es5.jj
//Revision: 920ad7d073f2a158fe15553fdd695c846dc19996
//Date: 02-06-2016

options {
    BUILD_PARSER=false;
    STATIC = false;
    DEBUG_PARSER = false;
    DEBUG_TOKEN_MANAGER = false;
    JAVA_UNICODE_ESCAPE = false;
    UNICODE_INPUT = true;
//    JDK_VERSION = "1.5";
}

PARSER_BEGIN(Ecmascript5ParserImpl)
package net.sourceforge.pmd.lang.ecmascript5.ast;

public class Ecmascript5ParserImpl {

}

PARSER_END(Ecmascript5ParserImpl)

/* WHITE SPACE - 7.2 */

SKIP : 
{
    < TAB:    "\u0009" >
|   < VT:     "\u000B" >
|   < FF:     "\u000C" >
|   < SP:     "\u0020" >
|   < NBSP:   "\u00A0" >
|   < BOM:    "\uFEFF" >
|   < USP: 
      [
        "\u1680", /* OGHAM SPACE MARK */
        "\u180E", /* MONGOLIAN VOWEL SEPARATOR */
        "\u2000", /* EN QUAD */
        "\u2001", /* EM QUAD */
        "\u2002", /* EN SPACE */
        "\u2003", /* EM SPACE */
        "\u2004", /* THREE-PER-EM SPACE */
        "\u2005", /* FOUR-PER-EM SPACE */
        "\u2006", /* SIX-PER-EM SPACE */
        "\u2007", /* FIGURE SPACE */
        "\u2008", /* PUNCTUATION SPACE */
        "\u2009", /* THIN SPACE */
        "\u200A", /* HAIR SPACE */
        "\u202F", /* NARROW NO-BREAK SPACE */
        "\u205F", /* MEDIUM MATHEMATICAL SPACE */
        "\u3000"  /* IDEOGRAPHIC SPACE */
      ]
    >
}
TOKEN : {
    < #LF: "\n" >
|   < #CR: "\r" >
|   < #LS: "\u2028" >
|   < #PS: "\u2029" >
}

/* 7.3 - LINE TERMINATORS */

SPECIAL_TOKEN : 
{
    < EOL: ()?||| >
}


TOKEN :
{
    < NO_SKIP_EOL: ()?||| >
}

/* COMMENTS */

/* 7.4 - COMMENTS */

SPECIAL_TOKEN : {
    < SINGLE_LINE_COMMENT: "//" (~["\n", "\r", "\u2028", "\u2029"])* ()* >
}


MORE :
{
  < "/**" ~[ "/" ] >
  {
    input_stream.backup(1);
  }
  : IN_JS_DOC_COMMENT
| < "/*" > : IN_MULTI_LINE_COMMENT
}

< IN_JS_DOC_COMMENT >
SPECIAL_TOKEN :
{
  < JS_DOC_COMMENT : "*/" ()* > : DEFAULT
}

< IN_MULTI_LINE_COMMENT >
SPECIAL_TOKEN :
{
  < MULTI_LINE_COMMENT : "*/" ()* > : DEFAULT
}

< IN_JS_DOC_COMMENT, IN_MULTI_LINE_COMMENT>
MORE :
{
  <~[]>
}

/* RESERVED WORDS AND LITERALS EcmaScript 7.4 */


TOKEN :
{
  < BREAK: "break" > : NOEOL
| < CONTINUE: "continue" > : NOEOL
| < DELETE: "delete" > : DEFAULT
| < ELSE: "else" > : DEFAULT
| < FOR: "for" > : DEFAULT
| < FUNCTION: "function" > : DEFAULT
| < IF: "if" > : DEFAULT
| < IN: "in" > : DEFAULT
| < NEW: "new" > : DEFAULT
| < RETURN: "return" > : NOEOL
| < THIS: "this" > : DEFAULT
| < TYPEOF: "typeof" > : DEFAULT
| < VAR: "var" > : DEFAULT
| < VOID: "void" > : DEFAULT
| < WHILE: "while" > : DEFAULT
| < WITH: "with" > : DEFAULT


| < CASE: "case" > : DEFAULT
| < CATCH: "catch" > : DEFAULT
| < CLASS: "class" > : DEFAULT
| < CONST: "const" > : DEFAULT
| < DEBUGGER: "debugger" > : DEFAULT
| < _DEFAULT: "default" > : DEFAULT
| < DO: "do" > : DEFAULT
| < ENUM: "enum" > : DEFAULT
| < EXPORT: "export" > : DEFAULT
| < EXTENDS: "extends" > : DEFAULT
| < FINALLY: "finally" > : DEFAULT
| < IMPORT: "import" > : DEFAULT
| < SUPER: "super" > : DEFAULT
| < SWITCH: "switch" > : DEFAULT
| < THROW: "throw" > : NOEOL
| < TRY: "try" > : DEFAULT
| < INSTANCEOF: "instanceof" > : DEFAULT

// They are not supposed to be keywords
| < TRUE: "true" > : DEFAULT
| < FALSE: "false" > : DEFAULT
| < NULL: "null" > : DEFAULT
| < GET: "get" > : DEFAULT
| < SET: "set" > : DEFAULT
}

/* RESERVED WORDS AND LITERALS Introduced in JavaScript 1.7
 * https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/let
 */


TOKEN :
{
  < LET: "let" > : NOEOL
}

/* LITERALS EcmaScript 7.7 
 * Decimal and floating point literals are recognized separately (to ease storing?)
 * FLoating points literals are too permissive (ONLY ONE LEADING ZERO ALLOWED)
 */


TOKEN :
{
  < DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* > : NOREGEXP
|
  < HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ > : NOREGEXP
|
  < OCTAL_LITERAL: "0" (["0"-"7"])* > : NOREGEXP
|
  < FLOATING_POINT_LITERAL:
        (["0"-"9"])+ "." (["0"-"9"])* ()? 
      | "." (["0"-"9"])+ ()? 
      | (["0"-"9"])+ ()? 
  > : NOREGEXP
|
  < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
|
  < STRING_LITERAL:
        "\""
        
        "\""
      | "'"
        
        "'"
      | "`"
        
        "`"
  > : NOREGEXP
|
  < #BACKTICK_STRING_LITERAL_BODY:(   
          ("\\" ~[] )
        | (~["`", "\\"])
        )*
  >
|
  < #SINGLE_STRING_LITERAL_BODY:(   
          ( "\\" ~[ "\r" , "\n" , "\u2028" , "\u2029"] )
        | ("\\" ( "\r\n" | "\r" | "\n" | "\u2028" | "\u2029") )
        | (~["\'","\n","\r","\u2028","\u2029","\\"])
        )*
  >
|
  < #DOUBLE_STRING_LITERAL_BODY:(   
          ( "\\" ~[ "\r" , "\n" , "\u2028" , "\u2029"] )
        | ("\\" ( "\r\n" | "\r" | "\n" | "\u2028" | "\u2029") )
        | (~["\"","\n","\r","\u2028","\u2029", "\\"])
        )*
  >
|
  < UNTERMINATED_STRING_LITERAL:
        "\""
        
        (["\n","\r","\u2028","\u2029"])
      | "'"
        
        (["\n","\r","\u2028","\u2029"])
  >
}


TOKEN: {
  < REGULAR_EXPRESSION_LITERAL:
    "/"
    
    "/"
    ()*
  >
|
  <# REGULAR_EXPRESSION_BODY:
     ()*
  >
| <# REGULAR_EXPRESSION_CHAR:
    ~[ "\r" , "\n" , "\u2028" , "\u2029", "\\", "/", "[" ]
    | 
    | 
  >
| <# REGULAR_EXPRESSION_FIRST_CHAR: 
    ~[ "\r" , "\n" , "\u2028" , "\u2029", "*", "\\", "/", "[" ]
    | 
    | 
  >
| <# REGULAR_EXPRESSION_BACKSLASH_SEQUENCE:
    "\\" ~[ "\r" , "\n" , "\u2028" , "\u2029" ]
  >
| <# REGULAR_EXPRESSION_CLASS:
    "[" ()* "]"
  >
| <# REGULAR_EXPRESSION_CLASS_CHAR:
    ~[ "\r" , "\n" , "\u2028" , "\u2029", "\\", "]" ]
    | 
  >
}

/* IDENTIFIERS */


TOKEN :
{
  < IDENTIFIER:  ()* > : NOREGEXP
|
  < #IDENTIFIER_START:
        
    |
        [
          "$",
          "_"
        ]
    |
        
  >
|  
  < #IDENTIFIER_PART: 
        
    | 
          
    | 
          
    | 
          
    |
        
    |
         
  >
|   
  < #UNICODE_LETTER: /* Unicode categories: Lu, Ll, Lt, Lm, Lo, Ni */
        [
          "\u0041"-"\u005A",
          "\u0061"-"\u007A",
          "\u00AA",
          "\u00B5",
          "\u00BA",
          "\u00C0"-"\u00D6",
          "\u00D8"-"\u00F6",
          "\u00F8"-"\u021F",
          "\u0222"-"\u0233",
          "\u0250"-"\u02AD",
          "\u02B0"-"\u02B8",
          "\u02BB"-"\u02C1",
          "\u02D0"-"\u02D1",
          "\u02E0"-"\u02E4",
          "\u02EE",
          "\u037A",
          "\u0386",
          "\u0388"-"\u038A",
          "\u038C",
          "\u038E"-"\u03A1",
          "\u03A3"-"\u03CE",
          "\u03D0"-"\u03D7",
          "\u03DA"-"\u03F3",
          "\u0400"-"\u0481",
          "\u048C"-"\u04C4",
          "\u04C7"-"\u04C8",
          "\u04CB"-"\u04CC",
          "\u04D0"-"\u04F5",
          "\u04F8"-"\u04F9",
          "\u0531"-"\u0556",
          "\u0559",
          "\u0561"-"\u0587",
          "\u05D0"-"\u05EA",
          "\u05F0"-"\u05F2",
          "\u0621"-"\u063A",
          "\u0640"-"\u064A",
          "\u0671"-"\u06D3",
          "\u06D5",
          "\u06E5"-"\u06E6",
          "\u06FA"-"\u06FC",
          "\u0710",
          "\u0712"-"\u072C",
          "\u0780"-"\u07A5",
          "\u0905"-"\u0939",
          "\u093D",
          "\u0950",
          "\u0958"-"\u0961",
          "\u0985"-"\u098C",
          "\u098F"-"\u0990",
          "\u0993"-"\u09A8",
          "\u09AA"-"\u09B0",
          "\u09B2",
          "\u09B6"-"\u09B9",
          "\u09DC"-"\u09DD",
          "\u09DF"-"\u09E1",
          "\u09F0"-"\u09F1",
          "\u0A05"-"\u0A0A",
          "\u0A0F"-"\u0A10",
          "\u0A13"-"\u0A28",
          "\u0A2A"-"\u0A30",
          "\u0A32"-"\u0A33",
          "\u0A35"-"\u0A36",
          "\u0A38"-"\u0A39",
          "\u0A59"-"\u0A5C",
          "\u0A5E",
          "\u0A72"-"\u0A74",
          "\u0A85"-"\u0A8B",
          "\u0A8D",
          "\u0A8F"-"\u0A91",
          "\u0A93"-"\u0AA8",
          "\u0AAA"-"\u0AB0",
          "\u0AB2"-"\u0AB3",
          "\u0AB5"-"\u0AB9",
          "\u0ABD",
          "\u0AD0",
          "\u0AE0",
          "\u0B05"-"\u0B0C",
          "\u0B0F"-"\u0B10",
          "\u0B13"-"\u0B28",
          "\u0B2A"-"\u0B30",
          "\u0B32"-"\u0B33",
          "\u0B36"-"\u0B39",
          "\u0B3D",
          "\u0B5C"-"\u0B5D",
          "\u0B5F"-"\u0B61",
          "\u0B85"-"\u0B8A",
          "\u0B8E"-"\u0B90",
          "\u0B92"-"\u0B95",
          "\u0B99"-"\u0B9A",
          "\u0B9C",
          "\u0B9E"-"\u0B9F",
          "\u0BA3"-"\u0BA4",
          "\u0BA8"-"\u0BAA",
          "\u0BAE"-"\u0BB5",
          "\u0BB7"-"\u0BB9",
          "\u0C05"-"\u0C0C",
          "\u0C0E"-"\u0C10",
          "\u0C12"-"\u0C28",
          "\u0C2A"-"\u0C33",
          "\u0C35"-"\u0C39",
          "\u0C60"-"\u0C61",
          "\u0C85"-"\u0C8C",
          "\u0C8E"-"\u0C90",
          "\u0C92"-"\u0CA8",
          "\u0CAA"-"\u0CB3",
          "\u0CB5"-"\u0CB9",
          "\u0CDE",
          "\u0CE0"-"\u0CE1",
          "\u0D05"-"\u0D0C",
          "\u0D0E"-"\u0D10",
          "\u0D12"-"\u0D28",
          "\u0D2A"-"\u0D39",
          "\u0D60"-"\u0D61",
          "\u0D85"-"\u0D96",
          "\u0D9A"-"\u0DB1",
          "\u0DB3"-"\u0DBB",
          "\u0DBD",
          "\u0DC0"-"\u0DC6",
          "\u0E01"-"\u0E30",
          "\u0E32"-"\u0E33",
          "\u0E40"-"\u0E46",
          "\u0E81"-"\u0E82",
          "\u0E84",
          "\u0E87"-"\u0E88",
          "\u0E8A",
          "\u0E8D",
          "\u0E94"-"\u0E97",
          "\u0E99"-"\u0E9F",
          "\u0EA1"-"\u0EA3",
          "\u0EA5",
          "\u0EA7",
          "\u0EAA"-"\u0EAB",
          "\u0EAD"-"\u0EB0",
          "\u0EB2"-"\u0EB3",
          "\u0EBD"-"\u0EC4",
          "\u0EC6",
          "\u0EDC"-"\u0EDD",
          "\u0F00",
          "\u0F40"-"\u0F6A",
          "\u0F88"-"\u0F8B",
          "\u1000"-"\u1021",
          "\u1023"-"\u1027",
          "\u1029"-"\u102A",
          "\u1050"-"\u1055",
          "\u10A0"-"\u10C5",
          "\u10D0"-"\u10F6",
          "\u1100"-"\u1159",
          "\u115F"-"\u11A2",
          "\u11A8"-"\u11F9",
          "\u1200"-"\u1206",
          "\u1208"-"\u1246",
          "\u1248",
          "\u124A"-"\u124D",
          "\u1250"-"\u1256",
          "\u1258",
          "\u125A"-"\u125D",
          "\u1260"-"\u1286",
          "\u1288",
          "\u128A"-"\u128D",
          "\u1290"-"\u12AE",
          "\u12B0",
          "\u12B2"-"\u12B5",
          "\u12B8"-"\u12BE",
          "\u12C0",
          "\u12C2"-"\u12C5",
          "\u12C8"-"\u12CE",
          "\u12D0"-"\u12D6",
          "\u12D8"-"\u12EE",
          "\u12F0"-"\u130E",
          "\u1310",
          "\u1312"-"\u1315",
          "\u1318"-"\u131E",
          "\u1320"-"\u1346",
          "\u1348"-"\u135A",
          "\u13A0"-"\u13B0",
          "\u13B1"-"\u13F4",
          "\u1401"-"\u1676",
          "\u1681"-"\u169A",
          "\u16A0"-"\u16EA",
          "\u1780"-"\u17B3",
          "\u1820"-"\u1877",
          "\u1880"-"\u18A8",
          "\u1E00"-"\u1E9B",
          "\u1EA0"-"\u1EE0",
          "\u1EE1"-"\u1EF9",
          "\u1EE1"-"\u1EEF",
          "\u1F00"-"\u1F15",
          "\u1F18"-"\u1F1D",
          "\u1F20"-"\u1F39",
          "\u1F3A"-"\u1F45",
          "\u1F48"-"\u1F4D",
          "\u1F50"-"\u1F57",
          "\u1F59",
          "\u1F5B",
          "\u1F5D",
          "\u1F5F"-"\u1F7D",
          "\u1F80"-"\u1FB4",
          "\u1FB6"-"\u1FBC",
          "\u1FBE",
          "\u1FC2"-"\u1FC4",
          "\u1FC6"-"\u1FCC",
          "\u1FD0"-"\u1FD3",
          "\u1FD6"-"\u1FDB",
          "\u1FE0"-"\u1FEC",
          "\u1FF2"-"\u1FF4",
          "\u1FF6"-"\u1FFC",
          "\u207F",
          "\u2102",
          "\u2107",
          "\u210A"-"\u2113",
          "\u2115",
          "\u2119"-"\u211D",
          "\u2124",
          "\u2126",
          "\u2128",
          "\u212A"-"\u212D",
          "\u212F"-"\u2131",
          "\u2133"-"\u2139",
          "\u2160"-"\u2183",
          "\u3005"-"\u3007",
          "\u3021"-"\u3029",
          "\u3031"-"\u3035",
          "\u3038"-"\u303A",
          "\u3041"-"\u3094",
          "\u309D"-"\u309E",
          "\u30A1"-"\u30FA",
          "\u30FC"-"\u30FE",
          "\u3105"-"\u312C",
          "\u3131"-"\u318E",
          "\u31A0"-"\u31B7",
          "\u3400",
          "\u4DB5",
          "\u4E00"-"\u9EA5",
          "\uA000"-"\uA48C",
          "\uA490"-"\uABFF",
          "\uAC00"-"\ud7AF",
          "\uF900"-"\uFA2D",
          "\uFB00"-"\uFB06",
          "\uFB13"-"\uFB17",
          "\uFB1D",
          "\uFB1F"-"\uFB28",
          "\uFB2A"-"\uFB36",
          "\uFB38"-"\uFB3C",
          "\uFB3E",
          "\uFB40"-"\uFB41",
          "\uFB43"-"\uFB44",
          "\uFB46"-"\uFBB1",
          "\uFBD3"-"\uFD3D",
          "\uFD50"-"\uFD8F",
          "\uFD92"-"\uFDC7",
          "\uFDF0"-"\uFDFB",
          "\uFE70"-"\uFE72",
          "\uFE74",
          "\uFE76"-"\uFEFC",
          "\uFF21"-"\uFF3A",
          "\uFF41"-"\uFF5A",
          "\uFF66"-"\uFFBE",
          "\uFFC2"-"\uFFC7",
          "\uFFCA"-"\uFFCF",
          "\uFFD2"-"\uFFD7",
          "\uFFDA"-"\uFFDC" 
        ] 
  >
|
  < #UNICODE_ESCAPE_SEQUENCE: "\\" "u"     >
|   
  < #UNICODE_COMBINING_MARK: /* Unicode categories: Mn, Mc */
        [
          "\u0300"-"\u034E",
          "\u0360"-"\u0362",
          "\u0483"-"\u0486",
          "\u0591"-"\u05A1",
          "\u05A3"-"\u05B9",
          "\u05BB"-"\u05BD",
          "\u05BF",
          "\u05C1"-"\u05C2",
          "\u05C4",
          "\u064B"-"\u0655",
          "\u0670",
          "\u06D6"-"\u06DC",
          "\u06DF"-"\u06E4",
          "\u06E7"-"\u06E8",
          "\u06EA"-"\u06ED",
          "\u0711",
          "\u0730"-"\u074A",
          "\u07A6"-"\u07B0",
          "\u0901"-"\u0903",
          "\u093C",
          "\u093E"-"\u094D",
          "\u0951"-"\u0954",
          "\u0962"-"\u0963",
          "\u0981"-"\u0983",
          "\u09BC"-"\u09C4",
          "\u09C7"-"\u09C8",
          "\u09CB"-"\u09CD",
          "\u09D7",
          "\u09E2"-"\u09E3",
          "\u0A02",
          "\u0A3C",
          "\u0A3E"-"\u0A42",
          "\u0A47"-"\u0A48",
          "\u0A4B"-"\u0A4D",
          "\u0A70"-"\u0A71",
          "\u0A81"-"\u0A83",
          "\u0ABC",
          "\u0ABE"-"\u0AC5",
          "\u0AC7"-"\u0AC9",
          "\u0ACB"-"\u0ACD",
          "\u0B01"-"\u0B03",
          "\u0B3C",
          "\u0B3E"-"\u0B43",
          "\u0B47"-"\u0B48",
          "\u0B4B"-"\u0B4D",
          "\u0B56"-"\u0B57",
          "\u0B82"-"\u0B83",
          "\u0BBE"-"\u0BC2",
          "\u0BC6"-"\u0BC8",
          "\u0BCA"-"\u0BCD",
          "\u0BD7",
          "\u0C01"-"\u0C03",
          "\u0C3E"-"\u0C44",
          "\u0C46"-"\u0C48",
          "\u0C4A"-"\u0C4D",
          "\u0C55"-"\u0C56",
          "\u0C82"-"\u0C83",
          "\u0CBE"-"\u0CC4",
          "\u0CC6"-"\u0CC8",
          "\u0CCA"-"\u0CCD",
          "\u0CD5"-"\u0CD6",
          "\u0D02"-"\u0D03",
          "\u0D3E"-"\u0D43",
          "\u0D46"-"\u0D48",
          "\u0D4A"-"\u0D4D",
          "\u0D57",
          "\u0D82"-"\u0D83",
          "\u0DCA",
          "\u0DCF"-"\u0DD4",
          "\u0DD6",
          "\u0DD8"-"\u0DDF",
          "\u0DF2"-"\u0DF3",
          "\u0E31",
          "\u0E34"-"\u0E3A",
          "\u0E47"-"\u0E4E",
          "\u0EB1",
          "\u0EB4"-"\u0EB9",
          "\u0EBB"-"\u0EBC",
          "\u0EC8"-"\u0ECD",
          "\u0F18"-"\u0F19",
          "\u0F35",
          "\u0F37",
          "\u0F39",
          "\u0F3E"-"\u0F3F",
          "\u0F71"-"\u0F84",
          "\u0F86"-"\u0F87",
          "\u0F90"-"\u0F97",
          "\u0F99"-"\u0FBC",
          "\u0FC6",
          "\u102C"-"\u1032",
          "\u1036"-"\u1039",
          "\u1056"-"\u1059",
          "\u17B4"-"\u17D3",
          "\u18A9",
          "\u20D0"-"\u20DC",
          "\u20E1",
          "\u302A"-"\u302F",
          "\u3099"-"\u309A",
          "\uFB1E",
          "\uFE20"-"\uFE23" 
        ] 
  >
|    
  < #UNICODE_DIGIT: /* Unicode categories: Nd */
        [
          "\u0030"-"\u0039",
          "\u0660"-"\u0669",
          "\u06F0"-"\u06F9",
          "\u0966"-"\u096F",
          "\u09E6"-"\u09EF",
          "\u0A66"-"\u0A6F",
          "\u0AE6"-"\u0AEF",
          "\u0B66"-"\u0B6F",
          "\u0BE7"-"\u0BEF",
          "\u0C66"-"\u0C6F",
          "\u0CE6"-"\u0CEF",
          "\u0D66"-"\u0D6F",
          "\u0E50"-"\u0E59",
          "\u0ED0"-"\u0ED9",
          "\u0F20"-"\u0F29",
          "\u1040"-"\u1049",
          "\u1369"-"\u1371",
          "\u17E0"-"\u17E9",
          "\u1810"-"\u1819",
          "\uFF10"-"\uFF19" 
        ] 
  >
|
  < #UNICODE_CONNECTOR_PUNCTUATION: /* Unicode categories: Pc */
        [
          "\u005F",
          "\u203F"-"\u2040",
          "\u30FB",
          "\uFE33"-"\uFE34",
          "\uFE4D"-"\uFE4F",
          "\uFF3F",
          "\uFF65" 
        ] 
  >
|   
  < #ZWNJ: "\u200D"> /* Zero width joiner (ZWJ) */
| 
  < #ZWJ: "\u200C"> /* Zero width non-joiner (ZWNJ) */
}


TOKEN : 
{
  < HEX_DIGIT: ["0"-"9"] | ["a"-"f"] | ["A"-"F"] >
}

/* SEPARATORS */

TOKEN :
{
  < LPAREN: "(" > : DEFAULT
| < RPAREN: ")" > : NOREGEXP
| < LBRACE: "{" > : DEFAULT
| < RBRACE: "}" > : DEFAULT
| < LBRACKET: "[" > : DEFAULT
| < RBRACKET: "]" > : NOREGEXP
| < SEMICOLON: ";" > : DEFAULT
| < COMMA: "," > : DEFAULT
| < DOT: "." > : DEFAULT
}

/* OPERATORS */

TOKEN :
{
  < ASSIGN: "=" > : DEFAULT
| < GT: ">" > : DEFAULT
| < LT: "<" > : DEFAULT
| < BANG: "!" > : DEFAULT
| < TILDE: "~" > : DEFAULT
| < HOOK: "?" > : DEFAULT
| < COLON: ":" > : DEFAULT
| < STRICT_EQ: "===" > : DEFAULT
| < STRICT_NEQ: "!==" > : DEFAULT
| < EQ: "==" > : DEFAULT
| < LE: "<=" > : DEFAULT
| < GE: ">=" > : DEFAULT
| < NE: "!=" > : DEFAULT
| < SC_OR: "||" > : DEFAULT
| < SC_AND: "&&" > : DEFAULT
| < INCR: "++" > { if (matchedToken.specialToken != null && matchedToken.specialToken.kind == EOL) { matchedToken = matchedToken.withKind(NL_INCR); } } : DEFAULT
| < NL_INCR: [ "\r" , "\n" , "\u2028" , "\u2029"] "++" > : DEFAULT
| < DECR: "--" > { if (matchedToken.specialToken != null && matchedToken.specialToken.kind == EOL) { matchedToken = matchedToken.withKind(NL_DECR); } } : DEFAULT
| < NL_DECR: [ "\r" , "\n" , "\u2028" , "\u2029"] "--" > : DEFAULT
| < PLUS: "+" > : DEFAULT
| < MINUS: "-" > : DEFAULT
| < STAR: "*" > : DEFAULT
| < SLASH: "/" > : DEFAULT
| < BIT_AND: "&" > : DEFAULT
| < BIT_OR: "|" > : DEFAULT
| < XOR: "^" > : DEFAULT
| < REM: "%" > : DEFAULT
| < LSHIFT: "<<" > : DEFAULT
| < RSIGNEDSHIFT: ">>" > : DEFAULT
| < RUNSIGNEDSHIFT: ">>>" > : DEFAULT
| < PLUSASSIGN: "+=" > : DEFAULT
| < MINUSASSIGN: "-=" > : DEFAULT
| < STARASSIGN: "*=" > : DEFAULT
| < SLASHASSIGN: "/=" > : DEFAULT
| < ANDASSIGN: "&=" > : DEFAULT
| < ORASSIGN: "|=" > : DEFAULT
| < XORASSIGN: "^=" > : DEFAULT
| < REMASSIGN: "%=" > : DEFAULT
| < LSHIFTASSIGN: "<<=" > : DEFAULT
| < RSIGNEDSHIFTASSIGN: ">>=" > : DEFAULT
| < RUNSIGNEDSHIFTASSIGN: ">>>=" > : DEFAULT
}

/*
 * Decorators
 * See https://github.com/tc39/proposal-decorators
 */

TOKEN :
{
    < AT: "@" > : DEFAULT
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy