/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
/* Generated By:JJTree: Do not edit this line. .\JSParser20TreeConstants.java */

package org.apache.myfaces.buildtools.maven2.plugin.javascript.javascript20parser;

public interface JSParser20TreeConstants
{
  public int JJTPROGRAM = 0;
  public int JJTIDENTIFIER = 1;
  public int JJTSIMPLEQUALIFIEDIDENTIFIER = 2;
  public int JJTEXPRESSIONQUALIFIEDIDENTIFIER = 3;
  public int JJTQUALIFIEDIDENTIFIER = 4;
  public int JJTPRIMARYEXPRESSION = 5;
  public int JJTRESERVEDNAMESPACE = 6;
  public int JJTFUNCTIONEXPRESSION = 7;
  public int JJTOBJECTLITERAL = 8;
  public int JJTFIELDLIST = 9;
  public int JJTLITERALFIELD = 10;
  public int JJTFIELDNAME = 11;
  public int JJTARRAYLITERAL = 12;
  public int JJTELEMENTLIST = 13;
  public int JJTLITERALELEMENT = 14;
  public int JJTSUPEREXPRESSION = 15;
  public int JJTPOSTFIXEXPRESSION = 16;
  public int JJTATTRIBUTEEXPRESSION = 17;
  public int JJTFULLPOSTFIXEXPRESSION = 18;
  public int JJTFULLNEWEXPRESSION = 19;
  public int JJTFUNCTIONCONSTRUCTOR = 20;
  public int JJTFULLNEWSUBEXPRESSION = 21;
  public int JJTPOSTFIXOP = 22;
  public int JJTPROPERTYORARGUMENTS = 23;
  public int JJTPROPERTYOPERATOR = 24;
  public int JJTARGUMENTS = 25;
  public int JJTUNARYEXPRESSION = 26;
  public int JJTMULOP = 27;
  public int JJTMULTIPLICATIVEEXPRESSION = 28;
  public int JJTADDOP = 29;
  public int JJTADDITIVEEXPRESSION = 30;
  public int JJTSHIFTOP = 31;
  public int JJTSHIFTEXPRESSION = 32;
  public int JJTRELOP = 33;
  public int JJTRELATIONALEXPRESSION = 34;
  public int JJTRELATIONALEXPRESSIONNOIN = 35;
  public int JJTEQUALOP = 36;
  public int JJTEQUALITYEXPRESSION = 37;
  public int JJTEQUALITYEXPRESSIONNOIN = 38;
  public int JJTBITWISEANDOP = 39;
  public int JJTBITWISEANDEXPRESSION = 40;
  public int JJTBITWISEANDEXPRESSIONNOIN = 41;
  public int JJTBITWISEXOROP = 42;
  public int JJTBITWISEXOREXPRESSION = 43;
  public int JJTBITWISEXOREXPRESSIONNOIN = 44;
  public int JJTBITWISEOROP = 45;
  public int JJTBITWISEOREXPRESSION = 46;
  public int JJTBITWISEOREXPRESSIONNOIN = 47;
  public int JJTLOGICALANDEXPRESSION = 48;
  public int JJTLOGICALANDEXPRESSIONNOIN = 49;
  public int JJTLOGICALOREXPRESSION = 50;
  public int JJTLOGICALOREXPRESSIONNOIN = 51;
  public int JJTCONDITIONALEXPRESSION = 52;
  public int JJTCONDITIONALEXPRESSIONNOIN = 53;
  public int JJTNONASSIGNMENTEXPRESSION = 54;
  public int JJTNONASSIGNMENTEXPRESSIONNOIN = 55;
  public int JJTASSIGNEMENTOPERATOR = 56;
  public int JJTASSIGNMENTEXPRESSION = 57;
  public int JJTASSIGNMENTEXPRESSIONNOIN = 58;
  public int JJTLISTEXPRESSION = 59;
  public int JJTLISTEXPRESSIONNOIN = 60;
  public int JJTTYPEEXPRESSION = 61;
  public int JJTTYPEEXPRESSIONNOIN = 62;
  public int JJTTYPEEXPRESSIONLIST = 63;
  public int JJTSTATEMENT = 64;
  public int JJTSUBSTATEMENT = 65;
  public int JJTSUBSTATEMENTS = 66;
  public int JJTSC = 67;
  public int JJTEOLCOMMENTSKIPWS = 68;
  public int JJTEMPTYSTATEMENT = 69;
  public int JJTEXPRESSIONSTATEMENT = 70;
  public int JJTSUPERSTATEMENT = 71;
  public int JJTBLOCK = 72;
  public int JJTLABELEDSTATEMENT = 73;
  public int JJTIFSTATEMENT = 74;
  public int JJTSWITCHSTATEMENT = 75;
  public int JJTCASEELEMENTS = 76;
  public int JJTCASEELEMENT = 77;
  public int JJTCASELABEL = 78;
  public int JJTDOSTATEMENT = 79;
  public int JJTWHILESTATEMENT = 80;
  public int JJTFORSTATEMENT = 81;
  public int JJTFORINITIALIZER = 82;
  public int JJTFORINBINDING = 83;
  public int JJTWITHSTATEMENT = 84;
  public int JJTCONTINUESTATEMENT = 85;
  public int JJTBREAKSTATEMENT = 86;
  public int JJTRETURNSTATEMENT = 87;
  public int JJTTHROWSTATEMENT = 88;
  public int JJTTRYSTATEMENT = 89;
  public int JJTDIRECTIVES = 90;
  public int JJTDIRECTIVE = 91;
  public int JJTANNOTATABLEDIRECTIVE = 92;
  public int JJTATTRIBUTES = 93;
  public int JJTATTRIBUTE = 94;
  public int JJTUSEDIRECTIVE = 95;
  public int JJTIMPORTDIRECTIVE = 96;
  public int JJTINCLUDEDIRECTIVE = 97;
  public int JJTPRAGMA = 98;
  public int JJTPRAGMAITEMS = 99;
  public int JJTPRAGMAITEM = 100;
  public int JJTPRAGMAEXPR = 101;
  public int JJTPRAGMAARGUMENT = 102;
  public int JJTEXPORTDEFINITION = 103;
  public int JJTEXPORTBINDINGLIST = 104;
  public int JJTEXPORTBINDING = 105;
  public int JJTVARIABLEDEFINITION = 106;
  public int JJTVARIABLEDEFINITIONNOIN = 107;
  public int JJTVARIABLEDEFINITIONKIND = 108;
  public int JJTVARIABLEBINDINGLIST = 109;
  public int JJTVARIABLEBINDINGLISTNOIN = 110;
  public int JJTVARIABLEBINDING = 111;
  public int JJTVARIABLEBINDINGNOIN = 112;
  public int JJTVARIABLEINITIALISATION = 113;
  public int JJTVARIABLEINITIALISATIONNOIN = 114;
  public int JJTVARIABLEINITIALIZER = 115;
  public int JJTVARIABLEINITIALIZERNOIN = 116;
  public int JJTTYPEDIDENTIFIER = 117;
  public int JJTTYPEDIDENTIFIERNOIN = 118;
  public int JJTSIMPLEVARIABLEDEFINITION = 119;
  public int JJTUNTYPEDVARIABLEBINDINGLIST = 120;
  public int JJTUNTYPEDVARIABLEBINDING = 121;
  public int JJTFUNCTIONDEFINITION = 122;
  public int JJTFUNCTIONNAME = 123;
  public int JJTFUNCTIONCOMMON = 124;
  public int JJTPARAMETERS = 125;
  public int JJTPARAMETER = 126;
  public int JJTPARAMETERINIT = 127;
  public int JJTRESTPARAMETERS = 128;
  public int JJTRESULT = 129;
  public int JJTCLASSDEFINITION = 130;
  public int JJTINTERFACEDEFINITION = 131;
  public int JJTINHERITANCE = 132;
  public int JJTNAMESPACEDEFINITION = 133;
  public int JJTPACKAGEDEFINITION = 134;
  public int JJTPACKAGENAME = 135;
  public int JJTPACKAGEIDENTIFIERS = 136;


  public String[] jjtNodeName = {
    "Program",
    "Identifier",
    "SimpleQualifiedIdentifier",
    "ExpressionQualifiedIdentifier",
    "QualifiedIdentifier",
    "PrimaryExpression",
    "ReservedNamespace",
    "FunctionExpression",
    "ObjectLiteral",
    "FieldList",
    "LiteralField",
    "FieldName",
    "ArrayLiteral",
    "ElementList",
    "LiteralElement",
    "SuperExpression",
    "PostfixExpression",
    "AttributeExpression",
    "FullPostfixExpression",
    "FullNewExpression",
    "FunctionConstructor",
    "FullNewSubexpression",
    "PostfixOp",
    "PropertyOrArguments",
    "PropertyOperator",
    "Arguments",
    "UnaryExpression",
    "MulOp",
    "MultiplicativeExpression",
    "AddOp",
    "AdditiveExpression",
    "ShiftOp",
    "ShiftExpression",
    "RelOp",
    "RelationalExpression",
    "RelationalExpressionNoIN",
    "EqualOp",
    "EqualityExpression",
    "EqualityExpressionNoIN",
    "BitwiseANDOp",
    "BitwiseANDExpression",
    "BitwiseANDExpressionNoIN",
    "BitwiseXOROp",
    "BitwiseXORExpression",
    "BitwiseXORExpressionNoIN",
    "BitwiseOROp",
    "BitwiseORExpression",
    "BitwiseORExpressionNoIN",
    "LogicalANDExpression",
    "LogicalANDExpressionNoIN",
    "LogicalORExpression",
    "LogicalORExpressionNoIN",
    "ConditionalExpression",
    "ConditionalExpressionNoIN",
    "NonAssignmentExpression",
    "NonAssignmentExpressionNoIN",
    "AssignementOperator",
    "AssignmentExpression",
    "AssignmentExpressionNoIN",
    "ListExpression",
    "ListExpressionNoIN",
    "TypeExpression",
    "TypeExpressionNoIN",
    "TypeExpressionList",
    "Statement",
    "Substatement",
    "Substatements",
    "Sc",
    "EolCommentSkipWs",
    "EmptyStatement",
    "ExpressionStatement",
    "SuperStatement",
    "Block",
    "LabeledStatement",
    "IfStatement",
    "SwitchStatement",
    "CaseElements",
    "CaseElement",
    "CaseLabel",
    "DoStatement",
    "WhileStatement",
    "ForStatement",
    "ForInitializer",
    "ForInBinding",
    "WithStatement",
    "ContinueStatement",
    "BreakStatement",
    "ReturnStatement",
    "ThrowStatement",
    "TryStatement",
    "Directives",
    "Directive",
    "AnnotatableDirective",
    "Attributes",
    "Attribute",
    "UseDirective",
    "ImportDirective",
    "IncludeDirective",
    "Pragma",
    "PragmaItems",
    "PragmaItem",
    "PragmaExpr",
    "PragmaArgument",
    "ExportDefinition",
    "ExportBindingList",
    "ExportBinding",
    "VariableDefinition",
    "VariableDefinitionNoIN",
    "VariableDefinitionKind",
    "VariableBindingList",
    "VariableBindingListNoIN",
    "VariableBinding",
    "VariableBindingNoIN",
    "VariableInitialisation",
    "VariableInitialisationNoIN",
    "VariableInitializer",
    "VariableInitializerNoIN",
    "TypedIdentifier",
    "TypedIdentifierNoIN",
    "SimpleVariableDefinition",
    "UntypedVariableBindingList",
    "UntypedVariableBinding",
    "FunctionDefinition",
    "FunctionName",
    "FunctionCommon",
    "Parameters",
    "Parameter",
    "ParameterInit",
    "RestParameters",
    "Result",
    "ClassDefinition",
    "InterfaceDefinition",
    "Inheritance",
    "NamespaceDefinition",
    "PackageDefinition",
    "PackageName",
    "PackageIdentifiers",
  };
}