gopparse.parser

来自「JDK1.4编译器前端」· PARSER 代码 · 共 48 行

PARSER
48
字号
TypeDecl type_declaration =
    class_declaration.c {: return c;:}

  | interface_declaration.i {: return i;:}
  
  | granule_declaration.g  {:return g;:}
  
  | shadow_class_declaration.s {:return s;:}

  | SEMICOLON.SEMICOLON {: return new EmptyType(new Modifiers(), "EmptyType", new Opt(), new List());:}
  ;

Access granule_type =
    name.n                    {: return n; :}
  ;
GranuleDecl granule_declaration =
    modifiers.m? GRANULE IDENTIFIER super.s? LPAREN class_type.c RPAREN class_body.b 
                                               {: return new GranuleDecl(new Modifiers(m), IDENTIFIER, s, c, b); :}
  ;
ClassDecl class_declaration =
    modifiers.m? CLASS IDENTIFIER super.s? interfaces.i? class_body.b 
                                               {: return new ClassDecl(new Modifiers(m), IDENTIFIER, s, i, b); :}
   
  ;  
  
  
ShadowClassDecl shadow_class_declaration = 
    modifiers.m? CLASS IDENTIFIER IN granule_type.g super.s? interfaces.i? class_body.b 
                                               {: return new ShadowClassDecl(new Modifiers(m), IDENTIFIER,g, s, i, b); :}
  ;    
 
 
Modifier modifier =
    PUBLIC                                     {: return new Modifier("public"); :}
  | PROTECTED                                  {: return new Modifier("protected"); :}
  | PRIVATE                                    {: return new Modifier("private"); :}
  | STATIC                                     {: return new Modifier("static"); :}
  | ABSTRACT                                   {: return new Modifier("abstract"); :}
  | FINAL                                      {: return new Modifier("final"); :}
  | NATIVE                                     {: return new Modifier("native"); :}
  | SYNCHRONIZED                               {: return new Modifier("synchronized"); :}
  | TRANSIENT                                  {: return new Modifier("transient"); :}
  | VOLATILE                                   {: return new Modifier("volatile"); :}
  | STRICTFP                                   {: return new Modifier("strictfp"); :}
  | EXTERNAL                                   {: return new Modifier("external"); :}
  ;
  
  

⌨️ 快捷键说明

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