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

📄 java1.5.jj

📁 这是JavaCC 他是词法语法分析器
💻 JJ
📖 第 1 页 / 共 3 页
字号:
         "\u0a0f"-"\u0a10",         "\u0a13"-"\u0a28",         "\u0a2a"-"\u0a30",         "\u0a32"-"\u0a33",         "\u0a35"-"\u0a36",         "\u0a38"-"\u0a39",         "\u0a3c",         "\u0a3e"-"\u0a42",         "\u0a47"-"\u0a48",         "\u0a4b"-"\u0a4d",         "\u0a59"-"\u0a5c",         "\u0a5e",         "\u0a66"-"\u0a74",         "\u0a81"-"\u0a83",         "\u0a85"-"\u0a8b",         "\u0a8d",         "\u0a8f"-"\u0a91",         "\u0a93"-"\u0aa8",         "\u0aaa"-"\u0ab0",         "\u0ab2"-"\u0ab3",         "\u0ab5"-"\u0ab9",         "\u0abc"-"\u0ac5",         "\u0ac7"-"\u0ac9",         "\u0acb"-"\u0acd",         "\u0ad0",         "\u0ae0",         "\u0ae6"-"\u0aef",         "\u0b01"-"\u0b03",         "\u0b05"-"\u0b0c",         "\u0b0f"-"\u0b10",         "\u0b13"-"\u0b28",         "\u0b2a"-"\u0b30",         "\u0b32"-"\u0b33",         "\u0b36"-"\u0b39",         "\u0b3c"-"\u0b43",         "\u0b47"-"\u0b48",         "\u0b4b"-"\u0b4d",         "\u0b56"-"\u0b57",         "\u0b5c"-"\u0b5d",         "\u0b5f"-"\u0b61",         "\u0b66"-"\u0b6f",         "\u0b82"-"\u0b83",         "\u0b85"-"\u0b8a",         "\u0b8e"-"\u0b90",         "\u0b92"-"\u0b95",         "\u0b99"-"\u0b9a",         "\u0b9c",         "\u0b9e"-"\u0b9f",         "\u0ba3"-"\u0ba4",         "\u0ba8"-"\u0baa",         "\u0bae"-"\u0bb5",         "\u0bb7"-"\u0bb9",         "\u0bbe"-"\u0bc2",         "\u0bc6"-"\u0bc8",         "\u0bca"-"\u0bcd",         "\u0bd7",         "\u0be7"-"\u0bef",         "\u0c01"-"\u0c03",         "\u0c05"-"\u0c0c",         "\u0c0e"-"\u0c10",         "\u0c12"-"\u0c28",         "\u0c2a"-"\u0c33",         "\u0c35"-"\u0c39",         "\u0c3e"-"\u0c44",         "\u0c46"-"\u0c48",         "\u0c4a"-"\u0c4d",         "\u0c55"-"\u0c56",         "\u0c60"-"\u0c61",         "\u0c66"-"\u0c6f",         "\u0c82"-"\u0c83",         "\u0c85"-"\u0c8c",         "\u0c8e"-"\u0c90",         "\u0c92"-"\u0ca8",         "\u0caa"-"\u0cb3",         "\u0cb5"-"\u0cb9",         "\u0cbe"-"\u0cc4",         "\u0cc6"-"\u0cc8",         "\u0cca"-"\u0ccd",         "\u0cd5"-"\u0cd6",         "\u0cde",         "\u0ce0"-"\u0ce1",         "\u0ce6"-"\u0cef",         "\u0d02"-"\u0d03",         "\u0d05"-"\u0d0c",         "\u0d0e"-"\u0d10",         "\u0d12"-"\u0d28",         "\u0d2a"-"\u0d39",         "\u0d3e"-"\u0d43",         "\u0d46"-"\u0d48",         "\u0d4a"-"\u0d4d",         "\u0d57",         "\u0d60"-"\u0d61",         "\u0d66"-"\u0d6f",         "\u0d82"-"\u0d83",         "\u0d85"-"\u0d96",         "\u0d9a"-"\u0db1",         "\u0db3"-"\u0dbb",         "\u0dbd",         "\u0dc0"-"\u0dc6",         "\u0dca",         "\u0dcf"-"\u0dd4",         "\u0dd6",         "\u0dd8"-"\u0ddf",         "\u0df2"-"\u0df3",         "\u0e01"-"\u0e3a",         "\u0e3f"-"\u0e4e",         "\u0e50"-"\u0e59",         "\u0e81"-"\u0e82",         "\u0e84",         "\u0e87"-"\u0e88",         "\u0e8a",         "\u0e8d",         "\u0e94"-"\u0e97",         "\u0e99"-"\u0e9f",         "\u0ea1"-"\u0ea3",         "\u0ea5",         "\u0ea7",         "\u0eaa"-"\u0eab",         "\u0ead"-"\u0eb9",         "\u0ebb"-"\u0ebd",         "\u0ec0"-"\u0ec4",         "\u0ec6",         "\u0ec8"-"\u0ecd",         "\u0ed0"-"\u0ed9",         "\u0edc"-"\u0edd",         "\u0f00",         "\u0f18"-"\u0f19",         "\u0f20"-"\u0f29",         "\u0f35",         "\u0f37",         "\u0f39",         "\u0f3e"-"\u0f47",         "\u0f49"-"\u0f6a",         "\u0f71"-"\u0f84",         "\u0f86"-"\u0f8b",         "\u0f90"-"\u0f97",         "\u0f99"-"\u0fbc",         "\u0fc6",         "\u1000"-"\u1021",         "\u1023"-"\u1027",         "\u1029"-"\u102a",         "\u102c"-"\u1032",         "\u1036"-"\u1039",         "\u1040"-"\u1049",         "\u1050"-"\u1059",         "\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",         "\u1369"-"\u1371",         "\u13a0"-"\u13f4",         "\u1401"-"\u166c",         "\u166f"-"\u1676",         "\u1681"-"\u169a",         "\u16a0"-"\u16ea",         "\u1780"-"\u17d3",         "\u17db",         "\u17e0"-"\u17e9",         "\u180b"-"\u180e",         "\u1810"-"\u1819",         "\u1820"-"\u1877",         "\u1880"-"\u18a9",         "\u1e00"-"\u1e9b",         "\u1ea0"-"\u1ef9",         "\u1f00"-"\u1f15",         "\u1f18"-"\u1f1d",         "\u1f20"-"\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",         "\u200c"-"\u200f",         "\u202a"-"\u202e",         "\u203f"-"\u2040",         "\u206a"-"\u206f",         "\u207f",         "\u20a0"-"\u20af",         "\u20d0"-"\u20dc",         "\u20e1",         "\u2102",         "\u2107",         "\u210a"-"\u2113",         "\u2115",         "\u2119"-"\u211d",         "\u2124",         "\u2126",         "\u2128",         "\u212a"-"\u212d",         "\u212f"-"\u2131",         "\u2133"-"\u2139",         "\u2160"-"\u2183",         "\u3005"-"\u3007",         "\u3021"-"\u302f",         "\u3031"-"\u3035",         "\u3038"-"\u303a",         "\u3041"-"\u3094",         "\u3099"-"\u309a",         "\u309d"-"\u309e",         "\u30a1"-"\u30fe",         "\u3105"-"\u312c",         "\u3131"-"\u318e",         "\u31a0"-"\u31b7",         "\u3400"-"\u4db5",         "\u4e00"-"\u9fa5",         "\ua000"-"\ua48c",         "\uac00"-"\ud7a3",         "\uf900"-"\ufa2d",         "\ufb00"-"\ufb06",         "\ufb13"-"\ufb17",         "\ufb1d"-"\ufb28",         "\ufb2a"-"\ufb36",         "\ufb38"-"\ufb3c",         "\ufb3e",         "\ufb40"-"\ufb41",         "\ufb43"-"\ufb44",         "\ufb46"-"\ufbb1",         "\ufbd3"-"\ufd3d",         "\ufd50"-"\ufd8f",         "\ufd92"-"\ufdc7",         "\ufdf0"-"\ufdfb",         "\ufe20"-"\ufe23",         "\ufe33"-"\ufe34",         "\ufe4d"-"\ufe4f",         "\ufe69",         "\ufe70"-"\ufe72",         "\ufe74",         "\ufe76"-"\ufefc",         "\ufeff",         "\uff04",         "\uff10"-"\uff19",         "\uff21"-"\uff3a",         "\uff3f",         "\uff41"-"\uff5a",         "\uff65"-"\uffbe",         "\uffc2"-"\uffc7",         "\uffca"-"\uffcf",         "\uffd2"-"\uffd7",         "\uffda"-"\uffdc",         "\uffe0"-"\uffe1",         "\uffe5"-"\uffe6",         "\ufff9"-"\ufffb"      ]  >}/* SEPARATORS */TOKEN :{  < LPAREN: "(" >| < RPAREN: ")" >| < LBRACE: "{" >| < RBRACE: "}" >| < LBRACKET: "[" >| < RBRACKET: "]" >| < SEMICOLON: ";" >| < COMMA: "," >| < DOT: "." >| < AT: "@" >}/* OPERATORS */TOKEN :{  < ASSIGN: "=" >| < 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: "<<" >| < PLUSASSIGN: "+=" >| < MINUSASSIGN: "-=" >| < STARASSIGN: "*=" >| < SLASHASSIGN: "/=" >| < ANDASSIGN: "&=" >| < ORASSIGN: "|=" >| < XORASSIGN: "^=" >| < REMASSIGN: "%=" >| < LSHIFTASSIGN: "<<=" >| < RSIGNEDSHIFTASSIGN: ">>=" >| < RUNSIGNEDSHIFTASSIGN: ">>>=" >| < ELLIPSIS: "..." >}/* >'s need special attention due to generics syntax. */TOKEN :{  < RUNSIGNEDSHIFT: ">>>" >  {     matchedToken.kind = GT;     ((MyToken)matchedToken).realKind = RUNSIGNEDSHIFT;     input_stream.backup(2);     matchedToken.image = ">";  }| < RSIGNEDSHIFT: ">>" >  {     matchedToken.kind = GT;     ((MyToken)matchedToken).realKind = RSIGNEDSHIFT;     input_stream.backup(1);     matchedToken.image = ">";  }| < GT: ">" >}/***************************************** * THE JAVA LANGUAGE GRAMMAR STARTS HERE * *****************************************//* * Program structuring syntax follows. */void CompilationUnit():{}{  [ LOOKAHEAD( ( Annotation() )* "package" ) PackageDeclaration() ]  ( ImportDeclaration() )*  ( TypeDeclaration() )+  ( < "\u001a" > )?  ( <STUFF_TO_IGNORE: ~[]> )?  <EOF>}void PackageDeclaration():{}{  Modifiers() "package" Name() ";"}void ImportDeclaration():{}{  "import" [ "static" ] Name() [ "." "*" ] ";"}/* * Modifiers. We match all modifiers in a single rule to reduce the chances of * syntax errors for simple modifier mistakes. It will also enable us to give * better error messages. */int Modifiers():{   int modifiers = 0;}{ (  LOOKAHEAD(2)  (   "public" { modifiers |= ModifierSet.PUBLIC; }  |   "static" { modifiers |= ModifierSet.STATIC; }  |   "protected" { modifiers |= ModifierSet.PROTECTED; }  |   "private" { modifiers |= ModifierSet.PRIVATE; }  |   "final" { modifiers |= ModifierSet.FINAL; }  |   "abstract" { modifiers |= ModifierSet.ABSTRACT; }  |   "synchronized" { modifiers |= ModifierSet.SYNCHRONIZED; }  |   "native" { modifiers |= ModifierSet.NATIVE; }  |   "transient" { modifiers |= ModifierSet.TRANSIENT; }  |   "volatile" { modifiers |= ModifierSet.VOLATILE; }  |   "strictfp" { modifiers |= ModifierSet.STRICTFP; }  |   Annotation()  ) )* {    return modifiers; }}/* * Declaration syntax follows. */void TypeDeclaration():{   int modifiers;}{  ";"|  modifiers = Modifiers()  (     ClassOrInterfaceDeclaration(modifiers)   |     EnumDeclaration(modifiers)   |     AnnotationTypeDeclaration(modifiers)  )}void ClassOrInterfaceDeclaration(int modifiers):{   boolean isInterface = false;}{  ( "class" | "interface" { isInterface = true; } )  <IDENTIFIER>  [ TypeParameters() ]  [ ExtendsList(isInterface) ]  [ ImplementsList(isInterface) ]  ClassOrInterfaceBody(isInterface)}void ExtendsList(boolean isInterface):{   boolean extendsMoreThanOne = false;}{   "extends" ClassOrInterfaceType()   ( "," ClassOrInterfaceType() { extendsMoreThanOne = true; } )*   {      if (extendsMoreThanOne && !isInterface)         throw new ParseException("A class cannot extend more than one other class");   }}void ImplementsList(boolean isInterface):{}{   "implements" ClassOrInterfaceType()   ( "," ClassOrInterfaceType() )*   {      if (isInterface)         throw new ParseException("An interface cannot implement other interfaces");   }}void EnumDeclaration(int modifiers):{}{  "enum" <IDENTIFIER>  [ ImplementsList(false) ]  EnumBody()}void EnumBody():{}{   "{"   [ EnumConstant() ( LOOKAHEAD(2) "," EnumConstant() )* ]    [ "," ]   [ ";" ( ClassOrInterfaceBodyDeclaration(false) )* ]   "}"}void EnumConstant():{}{  Modifiers() <IDENTIFIER> [ Arguments() ] [ ClassOrInterfaceBody(false) ]}void TypeParameters():{}{   "<" TypeParameter() ( "," TypeParameter() )* ">"}void TypeParameter():{}{   <IDENTIFIER> [ TypeBound() ]}void TypeBound():{}{   "extends" ClassOrInterfaceType() ( "&" ClassOrInterfaceType() )*}void ClassOrInterfaceBody(boolean isInterface):{}{  "{" ( ClassOrInterfaceBodyDeclaration(isInterface) )* "}"}void ClassOrInterfaceBodyDeclaration(boolean isInterface):{   boolean isNestedInterface = false;   int modifiers;}{  LOOKAHEAD(2)  Initializer()  {     if (isInterface)        throw new ParseException("An interface cannot have initializers");  }|  modifiers = Modifiers() // Just get all the modifiers out of the way. If you want to do              // more checks, pass the modifiers down to the member  (      ClassOrInterfaceDeclaration(modifiers)    |      EnumDeclaration(modifiers)    |      LOOKAHEAD( [ TypeParameters() ] <IDENTIFIER> "(" )      ConstructorDeclaration()    |      LOOKAHEAD( Type() <IDENTIFIER> ( "[" "]" )* ( "," | "=" | ";" ) )      FieldDeclaration(modifiers)    |      MethodDeclaration(modifiers)    |      AnnotationTypeDeclaration(modifiers)  )|  ";"}void FieldDeclaration(int modifiers):{}{  // Modifiers are already matched in the caller  Type() VariableDeclarator() ( "," VariableDeclarator() )* ";"}void VariableDeclarator():{}{  VariableDeclaratorId() [ "=" VariableInitializer() ]}void VariableDeclaratorId():{}{  <IDENTIFIER> ( "[" "]" )*}void VariableInitializer():{}{  ArrayInitializer()|  Expression()}void ArrayInitializer():{}{  "{" [ VariableInitializer() ( LOOKAHEAD(2) "," VariableInitializer() )* ] [ "," ] "}"}void MethodDeclaration(int modifiers):{}{  // Modifiers already matched in the caller!  [ TypeParameters() ]  ResultType()  MethodDeclarator() [ "throws" NameList() ]  ( Block() | ";" )}void MethodDeclarator():{}{  <IDENTIFIER> FormalParameters() ( "[" "]" )*}void FormalParameters():{}{  "(" [ FormalParameter() ( "," FormalParameter() )* ] ")"}void FormalParameter():{}{  // danson, added  //          [ "final" | Annotation() ]  // See Java Language Specification, 3rd Edition, section 8.4.1  Modifiers() [ "final" | Annotation() ] Type() [ "..." ] VariableDeclaratorId()}void ConstructorDeclaration():{}{  [ TypeParameters() ]  // Modifiers matched in the caller  <IDENTIFIER> FormalParameters() [ "throws" NameList() ]  "{"    [ LOOKAHEAD(ExplicitConstructorInvocation())         ExplicitConstructorInvocation()    ]    ( BlockStatement() )*  "}"}void ExplicitConstructorInvocation():{}{  ( <IDENTIFIER> "." )* [ LOOKAHEAD(2) "this" "." ]  [ TypeArguments() ] ("this"|"super") Arguments() ";"}void Initializer():{}{  [ "static" ] Block()}/* * Type, name and expression syntax follows. */void Type():{}{   LOOKAHEAD(2) ReferenceType() |   PrimitiveType()}void ReferenceType():{}{   PrimitiveType() ( LOOKAHEAD(2) "[" "]" )+  |   ( ClassOrInterfaceType() ) ( LOOKAHEAD(2) "[" "]" )*}void ClassOrInterfaceType():{}{  <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ]  ( LOOKAHEAD(2) "." <IDENTIFIER> [ LOOKAHEAD(2) TypeArguments() ] )*}void TypeArguments():{}{   "<" TypeArgument() ( "," TypeArgument() )* ">"}void TypeArgument():{}{

⌨️ 快捷键说明

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