From: <fwi...@us...> - 2011-03-25 15:25:14
|
Revision: 7267 http://jython.svn.sourceforge.net/jython/?rev=7267&view=rev Author: fwierzbicki Date: 2011-03-25 15:25:07 +0000 (Fri, 25 Mar 2011) Log Message: ----------- Reformat so that I can more easily script the removal of the grammar actions. I am probably going to need another parser to check "from __future__". Modified Paths: -------------- trunk/jython/grammar/Python.g Modified: trunk/jython/grammar/Python.g =================================================================== --- trunk/jython/grammar/Python.g 2011-03-24 20:12:46 UTC (rev 7266) +++ trunk/jython/grammar/Python.g 2011-03-25 15:25:07 UTC (rev 7267) @@ -267,6 +267,8 @@ } } +//START OF PARSER RULES + //single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE single_input @init { @@ -318,8 +320,9 @@ : (NEWLINE | stmt { - if ($stmt.stypes != null) - {stypes.addAll($stmt.stypes);} + if ($stmt.stypes != null) { + stypes.addAll($stmt.stypes); + } } )* EOF { @@ -446,8 +449,13 @@ //funcdef: [decorators] 'def' NAME parameters ':' suite funcdef -@init { stmt stype = null; } -@after { $funcdef.tree = stype; } +@init { + stmt stype = null; +} + +@after { + $funcdef.tree = stype; +} : decorators? DEF NAME parameters COLON suite[false] { Token t = $DEF; @@ -625,29 +633,53 @@ augassign returns [operatorType op] : PLUSEQUAL - {$op = operatorType.Add;} + { + $op = operatorType.Add; + } | MINUSEQUAL - {$op = operatorType.Sub;} + { + $op = operatorType.Sub; + } | STAREQUAL - {$op = operatorType.Mult;} + { + $op = operatorType.Mult; + } | SLASHEQUAL - {$op = operatorType.Div;} + { + $op = operatorType.Div; + } | PERCENTEQUAL - {$op = operatorType.Mod;} + { + $op = operatorType.Mod; + } | AMPEREQUAL - {$op = operatorType.BitAnd;} + { + $op = operatorType.BitAnd; + } | VBAREQUAL - {$op = operatorType.BitOr;} + { + $op = operatorType.BitOr; + } | CIRCUMFLEXEQUAL - {$op = operatorType.BitXor;} + { + $op = operatorType.BitXor; + } | LEFTSHIFTEQUAL - {$op = operatorType.LShift;} + { + $op = operatorType.LShift; + } | RIGHTSHIFTEQUAL - {$op = operatorType.RShift;} + { + $op = operatorType.RShift; + } | DOUBLESTAREQUAL - {$op = operatorType.Pow;} + { + $op = operatorType.Pow; + } | DOUBLESLASHEQUAL - {$op = operatorType.FloorDiv;} + { + $op = operatorType.FloorDiv; + } ; //print_stmt: 'print' ( [ test (',' test)* [','] ] | @@ -1085,7 +1117,10 @@ [expr_contextType ctype] returns [Token leftTok] : NOT nt=not_test[ctype] -> ^(NOT<UnaryOp>[$NOT, unaryopType.Not, actions.castExpr($nt.tree)]) - | comparison[ctype] {$leftTok = $comparison.leftTok;} + | comparison[ctype] + { + $leftTok = $comparison.leftTok; + } ; //comparison: expr (comp_op expr)* @@ -1116,27 +1151,49 @@ comp_op returns [cmpopType op] : LESS - {$op = cmpopType.Lt;} + { + $op = cmpopType.Lt; + } | GREATER - {$op = cmpopType.Gt;} + { + $op = cmpopType.Gt; + } | EQUAL - {$op = cmpopType.Eq;} + { + $op = cmpopType.Eq; + } | GREATEREQUAL - {$op = cmpopType.GtE;} + { + $op = cmpopType.GtE; + } | LESSEQUAL - {$op = cmpopType.LtE;} + { + $op = cmpopType.LtE; + } | ALT_NOTEQUAL - {$op = cmpopType.NotEq;} + { + $op = cmpopType.NotEq; + } | NOTEQUAL - {$op = cmpopType.NotEq;} + { + $op = cmpopType.NotEq; + } | IN - {$op = cmpopType.In;} + { + $op = cmpopType.In; + } | NOT IN - {$op = cmpopType.NotIn;} + { + $op = cmpopType.NotIn; + } | IS - {$op = cmpopType.Is;} + { + $op = cmpopType.Is; + } | IS NOT - {$op = cmpopType.IsNot;} + { + $op = cmpopType.IsNot; + } ; @@ -1242,9 +1299,13 @@ shift_op returns [operatorType op] : LEFTSHIFT - {$op = operatorType.LShift;} + { + $op = operatorType.LShift; + } | RIGHTSHIFT - {$op = operatorType.RShift;} + { + $op = operatorType.RShift; + } ; //arith_expr: term (('+'|'-') term)* @@ -1287,9 +1348,13 @@ arith_op returns [operatorType op] : PLUS - {$op = operatorType.Add;} + { + $op = operatorType.Add; + } | MINUS - {$op = operatorType.Sub;} + { + $op = operatorType.Sub; + } ; //term: factor (('*'|'/'|'%'|'//') factor)* @@ -1323,14 +1388,22 @@ term_op returns [operatorType op] - :STAR - {$op = operatorType.Mult;} - |SLASH - {$op = operatorType.Div;} - |PERCENT - {$op = operatorType.Mod;} - |DOUBLESLASH - {$op = operatorType.FloorDiv;} + : STAR + { + $op = operatorType.Mult; + } + | SLASH + { + $op = operatorType.Div; + } + | PERCENT + { + $op = operatorType.Mod; + } + | DOUBLESLASH + { + $op = operatorType.FloorDiv; + } ; //factor: ('+'|'-'|'~') factor | power @@ -1340,11 +1413,17 @@ $factor.tree = $etype; } : PLUS p=factor - {$etype = new UnaryOp($PLUS, unaryopType.UAdd, $p.etype);} + { + $etype = new UnaryOp($PLUS, unaryopType.UAdd, $p.etype); + } | MINUS m=factor - {$etype = actions.negate($MINUS, $m.etype);} + { + $etype = actions.negate($MINUS, $m.etype); + } | TILDE t=factor - {$etype = new UnaryOp($TILDE, unaryopType.Invert, $t.etype);} + { + $etype = new UnaryOp($TILDE, unaryopType.Invert, $t.etype); + } | power { $etype = actions.castExpr($power.tree); @@ -1399,7 +1478,10 @@ // NAME | NUMBER | STRING+) atom returns [Token lparen = null] - : LPAREN {$lparen = $LPAREN;} + : LPAREN + { + $lparen = $LPAREN; + } ( yield_expr -> yield_expr | testlist_gexp @@ -1475,8 +1557,7 @@ } : t+=test[$expr::ctype] ( ((options {k=2;}: c1=COMMA t+=test[$expr::ctype])* (c2=COMMA)? - -> { $c1 != null || $c2 != null }? - ^(COMMA<Tuple>[$testlist_gexp.start, actions.castExprs($t), $expr::ctype]) + -> { $c1 != null || $c2 != null }? ^(COMMA<Tuple>[$testlist_gexp.start, actions.castExprs($t), $expr::ctype]) -> test ) | (gen_for[gens] @@ -1778,6 +1859,7 @@ -> ^(YIELD<Yield>[$YIELD, actions.castExpr($testlist.tree)]) ; +//START OF LEXER RULES AS : 'as' ; ASSERT : 'assert' ; BREAK : 'break' ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |