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

📄 javaparser.beaver

📁 JDK1.4编译器后端
💻 BEAVER
📖 第 1 页 / 共 4 页
字号:
    local_variable_declaration.l SEMICOLON.SEMICOLON {: return l;:}  ;local_variable_declaration =    type.t variable_declarators.l {: return new VarDeclStmt(new Modifiers(new List()), t, l);:}  | modifiers.m type.t variable_declarators.l {: return new VarDeclStmt(new Modifiers(m), t, l);:}  ;statement =    statement_without_trailing_substatement.s {: return s;:}  | labeled_statement.l {: return l;:}  | if_then_statement.i {: return i;:}  | if_then_else_statement.i {: return i;:}  | while_statement.w {: return w;:}  | for_statement.f {: return f;:}  ;statement_without_trailing_substatement =    block.b {: return b;:}  | empty_statement.e {: return e;:}  | expression_statement.e {: return e;:}  | switch_statement.s {: return s;:}  | do_statement.d {: return d;:}  | break_statement.b {: return b;:}  | continue_statement.c {: return c;:}  | return_statement.r {: return r;:}  | synchronized_statement.s {: return s;:}  | throw_statement.t {: return t;:}  | try_statement.t {: return t;:}  | assert_statement.a {: return a;:}  ;statement_no_short_if =    statement_without_trailing_substatement.s {: return s;:}  | labeled_statement_no_short_if.l {: return l;:}  | if_then_else_statement_no_short_if.i {: return i;:}  | while_statement_no_short_if.w {: return w;:}  | for_statement_no_short_if.f {: return f;:}  ;if_then_statement =    IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement.s {: return new IfStmt(e, s, new Opt());:}  ;if_then_else_statement =    IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.t ELSE.ELSE statement.els {: return new IfStmt(e, t, new Opt(els));:}  ;if_then_else_statement_no_short_if =    IF.IF LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.t ELSE.ELSE statement_no_short_if.els {: return new IfStmt(e, t, new Opt(els));:}  ;empty_statement =    SEMICOLON.SEMICOLON {: return new EmptyStmt();:}  ;labeled_statement =    IDENTIFIER.id COLON.COLON statement.s {: return new LabeledStmt(((String)id.value), s);:}  ;labeled_statement_no_short_if =    IDENTIFIER.id COLON.COLON statement_no_short_if.s {: return new LabeledStmt(((String)id.value), s);:}  ;expression_statement =    statement_expression.e SEMICOLON.SEMICOLON {: return e;:}  ;statement_expression =    assignment.a {: return new ExprStmt(a);:}  | preincrement_expression.e {: return new ExprStmt(e);:}  | predecrement_expression.e {: return new ExprStmt(e);:}  | postincrement_expression.e {: return new ExprStmt(e);:}  | postdecrement_expression.e {: return new ExprStmt(e);:}  | method_invocation.i {: return new ExprStmt(i);:}  | class_instance_creation_expression.e {: return new ExprStmt(e);:}  ;switch_statement =    SWITCH.SWITCH LPAREN.LPAREN expression.e RPAREN.RPAREN switch_block.l {: return new SwitchStmt(e, l);:}  ;switch_block =    LBRACE.LBRACE switch_block_statement_groups.l switch_labels.s RBRACE.RBRACE {: for(int ii = 0; ii < s.getNumChildNoTransform(); ii++) l.add(s.getChildNoTransform(ii)); return new Block(l);:}  | LBRACE.LBRACE switch_block_statement_groups.l RBRACE.RBRACE {: return new Block(l);:}  | LBRACE.LBRACE switch_labels.l RBRACE.RBRACE {: return new Block(l);:}  | LBRACE.LBRACE RBRACE.RBRACE {: return new Block(new List());:}  ;switch_block_statement_groups =    switch_block_statement_group.g {: return g;:}  | switch_block_statement_groups.l switch_block_statement_group.g {: for(int ii = 0; ii < g.getNumChildNoTransform(); ii++)           l.add(g.getChildNoTransform(ii));         return l;:}  ;switch_block_statement_group =    switch_labels.l block_statements.bl {: for(int ii = 0; ii < bl.getNumChildNoTransform(); ii++)          l.add(bl.getChildNoTransform(ii));          return l;:}  ;switch_labels =    switch_label.s {: return new List().add(s);:}  | switch_labels.l switch_label.s {: return l.add(s);:}  ;switch_label =    CASE.CASE constant_expression.e COLON.COLON {: return new ConstCase(e);:}  | DEFAULT.DEFAULT COLON.COLON {: return new DefaultCase();:}  ;while_statement =    WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN statement.s {: return new WhileStmt(e, s);:}  ;while_statement_no_short_if =    WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN statement_no_short_if.s {: return new WhileStmt(e, s);:}  ;do_statement =    DO.DO statement.s WHILE.WHILE LPAREN.LPAREN expression.e RPAREN.RPAREN SEMICOLON.SEMICOLON {: return new DoStmt(s, e);:}  ;for_statement =    FOR.FOR LPAREN.LPAREN for_init_opt.i SEMICOLON.SEMICOLON expression_opt.e SEMICOLON.SEMICOLON_ for_update_opt.u RPAREN.RPAREN statement.s {: return new ForStmt(i, e, u, s);:}  ;for_statement_no_short_if =    FOR.FOR LPAREN.LPAREN for_init_opt.i SEMICOLON.SEMICOLON expression_opt.e SEMICOLON.SEMICOLON_ for_update_opt.u RPAREN.RPAREN statement_no_short_if.s {: return new ForStmt(i, e, u, s);:}  ;for_init =    statement_expression_list.l {: return l;:}  | local_variable_declaration.d {: return new List().add(d);:}  ;for_update =    statement_expression_list.l {: return l;:}  ;statement_expression_list =    statement_expression.e {: return new List().add(e);:}  | statement_expression_list.l COMMA.COMMA statement_expression.e {: return l.add(e);:}  ;break_statement =    BREAK.BREAK IDENTIFIER.id SEMICOLON.SEMICOLON {: return new BreakStmt(((String)id.value));:}  | BREAK.BREAK SEMICOLON.SEMICOLON {: return new BreakStmt("");:}  ;continue_statement =    CONTINUE.CONTINUE IDENTIFIER.id SEMICOLON.SEMICOLON {: return new ContinueStmt(((String)id.value));:}  | CONTINUE.CONTINUE SEMICOLON.SEMICOLON {: return new ContinueStmt("");:}  ;return_statement =    RETURN.RETURN expression_opt.e SEMICOLON.SEMICOLON {: return new ReturnStmt(e);:}  ;throw_statement =    THROW.THROW expression.e SEMICOLON.SEMICOLON {: return new ThrowStmt(e);:}  ;synchronized_statement =    SYNCHRONIZED.SYNCHRONIZED LPAREN.LPAREN expression.e RPAREN.RPAREN block.b {: return new SynchronizedStmt(e, b);:}  ;try_statement =    TRY.TRY block.b catches.c {: return new TryStmt(b, c, new Opt());:}  | TRY.TRY block.b finally.f {: return new TryStmt(b, new List(), new Opt(f));:}  | TRY.TRY block.b catches.c finally.f {: return new TryStmt(b, c, new Opt(f));:}  ;catches =    catch_clause.c {: return new List().add(c);:}  | catches.l catch_clause.c {: return l.add(c);:}  ;catch_clause =    CATCH.CATCH LPAREN.LPAREN formal_parameter.p RPAREN.RPAREN block.b {: return new CatchClause(p, b);:}  ;finally =    FINALLY.FINALLY block.b {: return b;:}  ;assert_statement =    ASSERT.ASSERT expression.e SEMICOLON.SEMICOLON {: return new AssertStmt(e, new Opt());:}  | ASSERT.ASSERT expression.e COLON.COLON expression.s SEMICOLON.SEMICOLON {: return new AssertStmt(e, new Opt(s));:}  ;primary =    primary_no_new_array.p {: return p;:}  | array_creation_init.a {: return a;:}  | array_creation_uninit.a {: return a;:}  ;class_literal =    CLASS.CLASS {: return new ClassAccess();:}  ;primary_no_new_array =    literal.l {: return l;:}  | primitive_type.n DOT.DOT class_literal.c {: return n.addArrayDims(new List()).qualifiesAccess(c);:}  | primitive_type.n dims.d DOT.DOT class_literal.c {: return n.addArrayDims(d).qualifiesAccess(c);:}  | name.n DOT.DOT class_literal.c {: return n.addArrayDims(new List()).qualifiesAccess(c);:}  | name.n dims.d DOT.DOT class_literal.c {: return n.addArrayDims(d).qualifiesAccess(c);:}  | VOID.VOID DOT.DOT class_literal.c {: PrimitiveTypeAccess v = new PrimitiveTypeAccess("void");                                                  v.setStart(VOID.getStart());                                                  v.setEnd(VOID.getEnd());                                                  return v.qualifiesAccess(c);:}  | THIS.THIS {: return new ThisAccess("this");:}  | name.n DOT.DOT THIS.THIS {: ThisAccess t = new ThisAccess("this");                                                  t.setStart(THIS.getStart()); t.setEnd(THIS.getEnd());                                                  return n.qualifiesAccess(t);:}  | LPAREN.LPAREN expression.e RPAREN.RPAREN {: return new ParExpr(e);:}  | LPAREN.LPAREN name.n RPAREN.RPAREN {: return new ParExpr(n);:}  | class_instance_creation_expression.c {: return c;:}  | field_access.f {: return f;:}  | method_invocation.m {: return m;:}  | array_access.a {: return a;:}  ;class_instance_creation_expression =    NEW.NEW class_or_interface_type.t LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: return new ClassInstanceExpr(t, l, new Opt());:}  | primary.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: ClassInstanceExpr e = new ClassInstanceExpr(id, l, new Opt());       e.setStart(NEW.getStart());       e.setEnd(RPAREN.getEnd());       return n.qualifiesAccess(e);:}  | name.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: ClassInstanceExpr e = new ClassInstanceExpr(id, l, new Opt());       e.setStart(NEW.getStart());       e.setEnd(RPAREN.getEnd());       return n.qualifiesAccess(e);:}  | NEW.NEW class_or_interface_type.t LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b {: return new ClassInstanceExpr(t, l, b);:}  | primary.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b {: ClassInstanceExpr e = new ClassInstanceExpr(id, l, b);       e.setStart(NEW.getStart());       e.setEnd(b.getEnd());       return n.qualifiesAccess(e);:}  | name.n DOT.DOT NEW.NEW simple_name.id LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN subclass_body.b {: ClassInstanceExpr e = new ClassInstanceExpr(id, l, b);       e.setStart(NEW.getStart());       e.setEnd(b.getEnd());       return n.qualifiesAccess(e);:}  ;subclass_body =    class_body.b {: return new Opt(new AnonymousDecl(new Modifiers(), "Anonymous", b));:}  ;argument_list =    expression.e {: return new List().add(e);:}  | argument_list.l COMMA.COMMA expression.e {: return l.add(e);:}  ;array_creation_uninit =    NEW.NEW primitive_type.t dim_exprs.d {: return new ArrayCreationExpr(t.addArrayDims(d), new Opt());:}  | NEW.NEW primitive_type.t dim_exprs.d dims.e {: return new ArrayCreationExpr(t.addArrayDims(d).addArrayDims(e), new Opt());:}  | NEW.NEW class_or_interface_type.t dim_exprs.d {: return new ArrayCreationExpr(t.addArrayDims(d), new Opt());:}  | NEW.NEW class_or_interface_type.t dim_exprs.d dims.e {: return new ArrayCreationExpr(t.addArrayDims(d).addArrayDims(e), new Opt());:}  ;array_creation_init =    NEW.NEW primitive_type.t dims.d array_initializer.i {: return new ArrayCreationExpr(t.addArrayDims(d), new Opt(i));:}  | NEW.NEW class_or_interface_type.t dims.d array_initializer.i {: return new ArrayCreationExpr(t.addArrayDims(d), new Opt(i));:}  ;dim_exprs =    dim_expr.e {: return new List().add(e);:}  | dim_exprs.l dim_expr.e {: return l.add(e);:}  ;dim_expr =    LBRACK.LBRACK expression.e RBRACK.RBRACK {: return new Dims(new Opt(e));:}  ;dims =    LBRACK.LBRACK RBRACK.RBRACK {: return new List().add(new Dims(new Opt()));:}  | dims.l LBRACK.LBRACK RBRACK.RBRACK {: return l.add(new Dims(new Opt()));:}  ;field_access =    primary.p DOT.DOT simple_name.id {: return p.qualifiesAccess(id);:}  | SUPER.SUPER DOT.DOT simple_name.id {: SuperAccess s = new SuperAccess("super");       s.setStart(SUPER.getStart());       s.setEnd(SUPER.getEnd());       return s.qualifiesAccess(id);:}  | name.n DOT.DOT SUPER.SUPER DOT.DOT_ simple_name.id {: SuperAccess s = new SuperAccess("super");       s.setStart(SUPER.getStart());       s.setEnd(SUPER.getEnd());       return n.qualifiesAccess(s).qualifiesAccess(id);:}  ;method_invocation =    name.n LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: if(n instanceof AbstractDot) {                                                                   AbstractDot d = (AbstractDot)n;                                                                ParseName pn = (ParseName)d.extractLast();                                                               MethodAccess m = new MethodAccess(pn.getID(), l);                                                               m.setStart(n.getStart()); // add location information                                                               m.setEnd(RPAREN.getEnd()); // add location information                                                               d.replaceLast(m);                                                               return d;                                                             }                                                             else {                                                               ParseName pn = (ParseName)n;                                                               return new MethodAccess(pn.getID(), l);                                                             }:}  | primary.p DOT.DOT IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: MethodAccess m = new MethodAccess(IDENTIFIER, l);        m.setStart(IDENTIFIER.getStart()); // add location information        m.setEnd(RPAREN.getEnd()); // add location information        return p.qualifiesAccess(m);:}  | SUPER.SUPER DOT.DOT IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: SuperAccess s = new SuperAccess("super");        s.setStart(SUPER.getStart());        s.setEnd(SUPER.getEnd());        MethodAccess m = new MethodAccess(IDENTIFIER, l);        m.setStart(IDENTIFIER.getStart());        m.setEnd(RPAREN.getEnd());        return s.qualifiesAccess(m);:}  | name.n DOT.DOT SUPER.SUPER DOT.DOT_ IDENTIFIER.IDENTIFIER LPAREN.LPAREN argument_list_opt.l RPAREN.RPAREN {: SuperAccess s = new SuperAccess("super");        s.setStart(SUPER.getStart());        s.setEnd(SUPER.getEnd());        MethodAccess m = new MethodAccess(IDENTIFIER, l);        m.setStart(IDENTIFIER.getStart());        m.setEnd(RPAREN.getEnd());        return n.qualifiesAccess(s).qualifiesAccess(m);:}  ;array_access =    name.n LBRACK.LBRACK expression.e RBRACK.RBRACK {: ArrayAccess a = new ArrayAccess(e);                                                         a.setStart(LBRACK.getStart());                                                         a.setEnd(RBRACK.getEnd());                                                         return n.qualifiesAccess(a);:}  | primary_no_new_array.p LBRACK.LBRACK expression.e RBRACK.RBRACK {: ArrayAccess a = new ArrayAccess(e);

⌨️ 快捷键说明

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