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

📄 java1.0.2ls.jj

📁 java 编译器java复杂编译器,可以编译java文件的类库
💻 JJ
📖 第 1 页 / 共 2 页
字号:
void PrimitiveType() :{}{  "boolean"|  "char"|  "byte"|  "short"|  "int"|  "long"|  "float"|  "double"}void ResultType() :{}{  "void"|  Type()}void Name() :/* * A lookahead of 2 is required below since "Name" can be followed * by a ".*" when used in the context of an "ImportDeclaration". */{}{  <IDENTIFIER>  ( LOOKAHEAD(2) "." <IDENTIFIER>  )*}void NameList() :{}{  Name()  ( "," Name()  )*}/* * Expression syntax follows. */void Expression() :{}{  LOOKAHEAD( PrimaryExpression() AssignmentOperator() )  Assignment()|  ConditionalExpression()}void Assignment() :{}{  PrimaryExpression() 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() )*}void EqualityExpression() :{}{  InstanceOfExpression() ( ( "==" | "!=" ) InstanceOfExpression() )*}void InstanceOfExpression() :{}{  RelationalExpression() [ "instanceof" Type() ]}void RelationalExpression() :{}{  ShiftExpression() ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*}void ShiftExpression() :{}{  AdditiveExpression() ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*}void AdditiveExpression() :{}{  MultiplicativeExpression() ( ( "+" | "-" ) MultiplicativeExpression() )*}void MultiplicativeExpression() :{}{  UnaryExpression() ( ( "*" | "/" | "%" ) UnaryExpression() )*}void UnaryExpression() :{}{  ( "+" | "-" ) UnaryExpression()|  PreIncrementExpression()|  PreDecrementExpression()|  UnaryExpressionNotPlusMinus()}void PreIncrementExpression() :{}{  "++" PrimaryExpression()}void PreDecrementExpression() :{}{  "--" PrimaryExpression()}void UnaryExpressionNotPlusMinus() :{}{  ( "~" | "!" ) UnaryExpression()|  LOOKAHEAD( CastLookahead() )  CastExpression()|  PostfixExpression()}// This production is to determine lookahead only.  The LOOKAHEAD specifications// below are not used, but they are there just to indicate that we know about// this.void CastLookahead() :{}{  LOOKAHEAD(2)  "(" PrimitiveType()|  LOOKAHEAD("(" Name() "[")  "(" Name() "[" "]"|  "(" Name() ")" ( "~" | "!" | "(" | <IDENTIFIER> | "this" | "super" | "new" | Literal() )}void PostfixExpression() :{}{  PrimaryExpression() [ "++" | "--" ]}void CastExpression() :{}{  LOOKAHEAD(2)  "(" PrimitiveType() ( "[" "]" )* ")" UnaryExpression()|  "(" Name() ( "[" "]" )* ")" UnaryExpressionNotPlusMinus()}void PrimaryExpression() :{}{  PrimaryPrefix() ( PrimarySuffix() )*}void PrimaryPrefix() :{}{  Literal()|  Name()|  "this"|  "super" "." <IDENTIFIER>|  "(" Expression() ")"|  AllocationExpression()}void PrimarySuffix() :{}{  "[" Expression() "]"|  "." <IDENTIFIER>|  Arguments()}void Literal() :{}{  <INTEGER_LITERAL>|  <FLOATING_POINT_LITERAL>|  <CHARACTER_LITERAL>|  <STRING_LITERAL>|  BooleanLiteral()|  NullLiteral()}void BooleanLiteral() :{}{  "true"|  "false"}void NullLiteral() :{}{  "null"}void Arguments() :{}{  "(" [ ArgumentList() ] ")"}void ArgumentList() :{}{  Expression() ( "," Expression() )*}void AllocationExpression() :{}{  LOOKAHEAD(2)  "new" PrimitiveType() ArrayDimensions()|  "new" Name() ( Arguments() | ArrayDimensions() )}/* * The second LOOKAHEAD specification below is to parse to PrimarySuffix * if there is an expression between the "[...]". */void ArrayDimensions() :{}{  ( LOOKAHEAD(2) "[" Expression() "]" )+ ( LOOKAHEAD(2) "[" "]" )*}/* * Statement syntax follows. */void Statement() :{}{  LOOKAHEAD(2)  LabeledStatement()|  Block()|  EmptyStatement()|  StatementExpression() ";"|  SwitchStatement()|  IfStatement()|  WhileStatement()|  DoStatement()|  ForStatement()|  BreakStatement()|  ContinueStatement()|  ReturnStatement()|  ThrowStatement()|  SynchronizedStatement()|  TryStatement()}void LabeledStatement() :{}{  <IDENTIFIER> ":" Statement()}void Block() :{}{  "{" ( BlockStatement() )* "}"}void BlockStatement() :{}{  LOOKAHEAD(Type() <IDENTIFIER>)  LocalVariableDeclaration() ";"|  Statement()}void LocalVariableDeclaration() :{}{  Type() VariableDeclarator() ( "," VariableDeclarator() )*}void EmptyStatement() :{}{  ";"}void StatementExpression() :/* * The last expansion of this production accepts more than the legal * Java expansions for StatementExpression. */{}{  PreIncrementExpression()|  PreDecrementExpression()|  LOOKAHEAD( PrimaryExpression() AssignmentOperator() )  Assignment()|  PostfixExpression()}void SwitchStatement() :{}{  "switch" "(" Expression() ")" "{"    ( SwitchLabel() ( BlockStatement() )* )*  "}"}void SwitchLabel() :{}{  "case" Expression() ":"|  "default" ":"}void IfStatement() :/* * The disambiguating algorithm of JavaCC automatically binds dangling * else's to the innermost if statement.  The LOOKAHEAD specification * is to tell JavaCC that we know what we are doing. */{}{  "if" "(" Expression() ")" Statement() [ LOOKAHEAD(1) "else" Statement() ]}void WhileStatement() :{}{  "while" "(" Expression() ")" Statement()}void DoStatement() :{}{  "do" Statement() "while" "(" Expression() ")" ";"}void ForStatement() :{}{  "for" "(" [ ForInit() ] ";" [ Expression() ] ";" [ ForUpdate() ] ")" Statement()}void ForInit() :{}{  LOOKAHEAD( Type() <IDENTIFIER> )  LocalVariableDeclaration()|  StatementExpressionList()}void StatementExpressionList() :{}{  StatementExpression() ( "," StatementExpression() )*}void ForUpdate() :{}{  StatementExpressionList()}void BreakStatement() :{}{  "break" [ <IDENTIFIER> ] ";"}void ContinueStatement() :{}{  "continue" [ <IDENTIFIER> ] ";"}void ReturnStatement() :{}{  "return" [ Expression() ] ";"}void ThrowStatement() :{}{  "throw" Expression() ";"}void SynchronizedStatement() :{}{  "synchronized" "(" Expression() ")" Block()}void TryStatement() :/* * Semantic check required here to make sure that at least one * finally/catch is present. */{}{  "try" Block()  ( "catch" "(" FormalParameter() ")" Block() )*  [ "finally" Block() ]}

⌨️ 快捷键说明

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