⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java1.1nola.jj

📁 java 编译器java复杂编译器,可以编译java文件的类库
💻 JJ
📖 第 1 页 / 共 3 页
字号:
            | ["0"-"3"] ["0"-"7"] ["0"-"7"]            )          )      )      "'"  >|  < STRING_LITERAL:      "\""      (   (~["\"","\\","\n","\r"])        | ("\\"            ( ["n","t","b","r","f","\\","'","\""]            | ["0"-"7"] ( ["0"-"7"] )?            | ["0"-"3"] ["0"-"7"] ["0"-"7"]            )          )      )*      "\""  >}/* IDENTIFIERS */TOKEN :{  < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)* >|  < #LETTER:      [       "\u0024",       "\u0041"-"\u005a",       "\u005f",       "\u0061"-"\u007a",       "\u00c0"-"\u00d6",       "\u00d8"-"\u00f6",       "\u00f8"-"\u00ff",       "\u0100"-"\u1fff",       "\u3040"-"\u318f",       "\u3300"-"\u337f",       "\u3400"-"\u3d2d",       "\u4e00"-"\u9fff",       "\uf900"-"\ufaff"      ]  >|  < #DIGIT:      [       "\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",       "\u1040"-"\u1049"      ]  >}/* SEPARATORS */TOKEN :{  < LPAREN: "(" >| < RPAREN: ")" >| < LBRACE: "{" >| < RBRACE: "}" >| < LBRACKET: "[" >| < RBRACKET: "]" >| < SEMICOLON: ";" >| < COMMA: "," >| < DOT: "." >}/* OPERATORS */TOKEN :{  < ASSIGN: "=" >| < GT: ">" >| < LT: "<" >| < BANG: "!" >| < TILDE: "~" >| < HOOK: "?" >| < COLON: ":" >| < EQ: "==" >| < LE: "<=" >| < GE: ">=" >| < NE: "!=" >| < SC_OR: "||" >| < SC_AND: "&&" >| < INCR: "++" >| < DECR: "--" >| < PLUS: "+" >| < MINUS: "-" >| < STAR: "*" >| < SLASH: "/" >| < BIT_AND: "&" >| < BIT_OR: "|" >| < XOR: "^" >| < REM: "%" >| < LSHIFT: "<<" >| < RSIGNEDSHIFT: ">>" >| < RUNSIGNEDSHIFT: ">>>" >| < PLUSASSIGN: "+=" >| < MINUSASSIGN: "-=" >| < STARASSIGN: "*=" >| < SLASHASSIGN: "/=" >| < ANDASSIGN: "&=" >| < ORASSIGN: "|=" >| < XORASSIGN: "^=" >| < REMASSIGN: "%=" >| < LSHIFTASSIGN: "<<=" >| < RSIGNEDSHIFTASSIGN: ">>=" >| < RUNSIGNEDSHIFTASSIGN: ">>>=" >}/***************************************** * THE JAVA LANGUAGE GRAMMAR STARTS HERE * *****************************************//* * Program structuring syntax follows. */void CompilationUnit() :{}{  [ PackageDeclaration() ]  ( ImportDeclaration() )*  (    LOOKAHEAD(1, <ABSTRACT> | <CLASS> | <FINAL> | <INTERFACE> | <PUBLIC> | <SEMICOLON>)    TypeDeclaration()  )*  <EOF>}void PackageDeclaration() :{}{  "package" Name() ";"}void ImportDeclaration() :{}{  "import" Name() [ "." "*" ] ";"}void TypeDeclaration() :{}{  LOOKAHEAD( { isClassDeclaration() } )  ClassDeclaration()|  InterfaceDeclaration()|  ";"}/* * Declaration syntax follows. */void ClassDeclaration() :{}{  ( "abstract" | "final" | "public" )*  UnmodifiedClassDeclaration()}void UnmodifiedClassDeclaration() :{}{  "class" <IDENTIFIER> [ "extends" Name() ] [ "implements" NameList() ]  ClassBody()}void ClassBody() :{}{  "{"    (      LOOKAHEAD(1, <ABSTRACT> | <BOOLEAN> | <BYTE> | <CHAR> | <CLASS> | <DOUBLE> |                   <FINAL> | <FLOAT> | <INT> | <INTERFACE> | <LONG> | <NATIVE> |                   <PRIVATE> | <PROTECTED> | <PUBLIC> | <SHORT> | <STATIC> |                   <SYNCHRONIZED> | <TRANSIENT> | <VOID> | <VOLATILE> | <IDENTIFIER> |                   <LBRACE>)      ClassBodyDeclaration()    )*  "}"}void NestedClassDeclaration() :{}{  ( "static" | "abstract" | "final" | "public" | "protected" | "private" )*  UnmodifiedClassDeclaration()}void ClassBodyDeclaration() :{}{  LOOKAHEAD( { isInitializer() } )  Initializer()|  LOOKAHEAD( { isNestedClassDeclaration() } )  NestedClassDeclaration()|  LOOKAHEAD( { isNestedInterfaceDeclaration() } )  NestedInterfaceDeclaration()|  LOOKAHEAD( { isConstructorDeclaration() } )  ConstructorDeclaration()|  LOOKAHEAD( { isMethodDeclaration() } )  MethodDeclaration()|  FieldDeclaration()}void InterfaceDeclaration() :{}{  ( "abstract" | "public" )*  UnmodifiedInterfaceDeclaration()}void NestedInterfaceDeclaration() :{}{  ( "static" | "abstract" | "final" | "public" | "protected" | "private" )*  UnmodifiedInterfaceDeclaration()}void UnmodifiedInterfaceDeclaration() :{}{  "interface" <IDENTIFIER> [ "extends" NameList() ]  "{"    (      LOOKAHEAD(1, <ABSTRACT> | <BOOLEAN> | <BYTE> | <CHAR> | <CLASS> | <DOUBLE> |                   <FINAL> | <FLOAT> | <INT> | <INTERFACE> | <LONG> | <NATIVE> |                   <PRIVATE> | <PROTECTED> | <PUBLIC> | <SHORT> | <STATIC> |                   <SYNCHRONIZED> | <TRANSIENT> | <VOID> | <VOLATILE> | <IDENTIFIER>)      InterfaceMemberDeclaration()    )*  "}"}void InterfaceMemberDeclaration() :{}{  LOOKAHEAD( { isNestedClassDeclaration() } )  NestedClassDeclaration()|  LOOKAHEAD( { isNestedInterfaceDeclaration() } )  NestedInterfaceDeclaration()|  LOOKAHEAD( { isMethodDeclaration() } )  MethodDeclaration()|  FieldDeclaration()}void FieldDeclaration() :{}{  ( "public" | "protected" | "private" | "static" | "final" | "transient" | "volatile" )*  Type() VariableDeclarator() ( "," VariableDeclarator() )* ";"}void VariableDeclarator() :{}{  VariableDeclaratorId() [ "=" VariableInitializer() ]}void VariableDeclaratorId() :{}{  <IDENTIFIER> ( "[" "]" )*}void VariableInitializer() :{}{  ArrayInitializer()|  LOOKAHEAD(1, <BOOLEAN> | <BYTE> | <CHAR> | <DOUBLE> | <FALSE> | <FLOAT> | <INT> |               <LONG> | <NEW> | <NULL> | <SHORT> | <SUPER> | <THIS> | <TRUE> |               <VOID> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> |               <CHARACTER_LITERAL> | <STRING_LITERAL> | <IDENTIFIER> | <LPAREN> |               <BANG> | <TILDE> | <INCR> | <DECR> | <PLUS> | <MINUS>)  Expression()}void ArrayInitializer() :{}{  "{"    [      LOOKAHEAD(1, <BOOLEAN> | <BYTE> | <CHAR> | <DOUBLE> | <FALSE> | <FLOAT> | <INT> |                   <LONG> | <NEW> | <NULL> | <SHORT> | <SUPER> | <THIS> | <TRUE> |                   <VOID> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> |                   <CHARACTER_LITERAL> | <STRING_LITERAL> | <IDENTIFIER> | <LPAREN> |                   <LBRACE> | <BANG> | <TILDE> | <INCR> | <DECR> | <PLUS> | <MINUS>)      VariableInitializer()      ( LOOKAHEAD( { getToken(1).kind == COMMA && getToken(2).kind != RBRACE } )        "," VariableInitializer()      )*    ]    [ "," ]  "}"}void MethodDeclaration() :{}{  ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )*  ResultType() MethodDeclarator() [ "throws" NameList() ]  ( Block() | ";" )}void MethodDeclarator() :{}{  <IDENTIFIER> FormalParameters() ( "[" "]" )*}void FormalParameters() :{}{  "(" [ FormalParameter() ( "," FormalParameter() )* ] ")"}void FormalParameter() :{}{  [ "final" ] Type() VariableDeclaratorId()}void ConstructorDeclaration() :{}{  [ "public" | "protected" | "private" ]  <IDENTIFIER> FormalParameters() [ "throws" NameList() ]  "{"    [ LOOKAHEAD( { isConstructorInvocation() } ) ExplicitConstructorInvocation() ]    (      LOOKAHEAD(1, <BOOLEAN> | <BREAK> | <BYTE> | <CHAR> | <CLASS> | <CONTINUE> |                   <DO> | <DOUBLE> | <FALSE> | <FINAL> | <FLOAT> | <FOR> | <IF> |                   <INT> | <LONG> | <NEW> | <NULL> | <RETURN> | <SHORT> | <SUPER> |                   <SWITCH> | <SYNCHRONIZED> | <THIS> | <THROW> | <TRUE> | <TRY> |                   <VOID> | <WHILE> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> |                   <CHARACTER_LITERAL> | <STRING_LITERAL> | <IDENTIFIER> | <LPAREN> |                   <LBRACE> | <SEMICOLON> | <INCR> | <DECR>)      BlockStatement()    )*  "}"}void ExplicitConstructorInvocation() :{}{  LOOKAHEAD( { getToken(1).kind == THIS && getToken(2).kind == LPAREN } )  "this" Arguments() ";"|  LOOKAHEAD(1, <BOOLEAN> | <BYTE> | <CHAR> | <DOUBLE> | <FALSE> | <FLOAT> | <INT> |               <LONG> | <NEW> | <NULL> | <SHORT> | <SUPER> | <THIS> | <TRUE> |               <VOID> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> |               <CHARACTER_LITERAL> | <STRING_LITERAL> | <IDENTIFIER> | <LPAREN>)  [    LOOKAHEAD( { getToken(1).kind != SUPER || getToken(2).kind != LPAREN } )    PrimaryExpression() "."  ]  "super" Arguments() ";"}void Initializer() :{}{  [ "static" ] Block()}/* * Type, name and expression syntax follows. */void Type() :{}{  ( PrimitiveType() | Name() ) ( "[" "]" )*}void PrimitiveType() :{}{  "boolean"|  "char"|  "byte"|  "short"|  "int"|  "long"|  "float"|  "double"}void ResultType() :{}{  "void"|  Type()}void Name() :{}{  <IDENTIFIER>  ( LOOKAHEAD( { getToken(1).kind == DOT && getToken(2).kind == IDENTIFIER } )    "." <IDENTIFIER>  )*}void NameList() :{}{  Name()  ( "," Name()  )*}/* * Expression syntax follows. */void Expression() :/* * This expansion has been written this way instead of: *   Assignment() | ConditionalExpression() * for performance reasons. * However, it is a weakening of the grammar for it allows the LHS of * assignments to be any conditional expression whereas it can only be * a primary expression.  Consider adding a semantic predicate to work * around this. */{}{  ConditionalExpression()  [     AssignmentOperator() Expression()  ]}void AssignmentOperator() :{}{  "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="}void ConditionalExpression() :{}{  ConditionalOrExpression() [ "?" Expression() ":" ConditionalExpression() ]}void ConditionalOrExpression() :{}{  ConditionalAndExpression() ( "||" ConditionalAndExpression() )*}void ConditionalAndExpression() :{}{  InclusiveOrExpression() ( "&&" InclusiveOrExpression() )*}void InclusiveOrExpression() :{}{  ExclusiveOrExpression() ( "|" ExclusiveOrExpression() )*}void ExclusiveOrExpression() :{}{  AndExpression() ( "^" AndExpression() )*}void AndExpression() :{}{  EqualityExpression() ( "&" EqualityExpression() )*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -