Changeset 2390


Ignore:
Timestamp:
Sep 22, 2012, 5:29:43 PM (6 years ago)
Author:
ksherdy
Message:

Updated grammar to sync with existing visitor implementations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/pablo/input/grammar/scatter/pablo.scatter

    r2387 r2390  
    6666  binaryOperator {} [expression, expression1],//, expression4],
    6767  unaryOperator {} [expression2,],// expression5],
     68  assignment {} [assignmentStatementRest],
    6869  functionInvocation {} [functionInvocationRest],
    69 //  functionInvocationStatement {} [functionInvocationOrAssignmentStatement],
     70  ASTNode [functionInvocationOrAssignmentStatement],
    7071  integerConstant{intValued;} [],
     72 
    7173}
    7274
     
    99101        typeList                -> type (COMMA type)*;
    100102                                                                                                               
    101         functionName    #-> identifier ;
     103        functionName    -> identifier ;
    102104                                                                                                                       
    103105        parameter               -> type parameterName ;
     
    114116        // s t a t e m e n t s
    115117        //
    116         statement                                                       #-> ( functionInvocationOrAssignmentStatement | assignmentStatement | ifStatement | whileStatement | returnStatement | localVarDecl) (TERMINATOR)? ;
     118        statement                                                       #-> ( functionInvocationOrAssignmentStatement | ifStatement | whileStatement | returnStatement | localVarDecl) (TERMINATOR)? ;
    117119                       
    118         functionInvocationOrAssignmentStatement -> compoundIdentifier ((functionInvocation _promote_) | (assignmentStatement _promote_)) TERMINATOR ;
     120        functionInvocationOrAssignmentStatement -> compoundVariable ((functionInvocation _promote_) | (assignmentStatementRest _promote_)) TERMINATOR ;
    119121               
    120122        functionInvocation                                              #-> functionInvocationRest;
    121        
    122         assignmentStatement                                     -> assignmentOperator expression ;     
    123123               
    124124        assignmentOperator                                      -> ASSIGN | AND_ASSIGN | OR_ASSIGN | NOT_ASSIGN | XOR_ASSIGN ;                         
    125125                                       
    126         assignmentStatementRest                         -> assignmentOperator expression ;                             
     126        assignmentStatementRest                         -> assignmentOperator^! expression ;                           
    127127                                       
    128128        ifStatement                                                     -> IF LROUND ifCondition RROUND ifBlock (ELSE elseBlock)? ;
     
    146146        localVarDeclList                                        -> localVarDecl (COMMA localVarDecl)* ;
    147147               
    148         localVarDecl                                            -> identifier (assignmentOperator expression) ? ;
    149                
     148        localVarDecl                                            -> variableName (assignmentOperator expression) ? ;
     149               
     150        variableName                                            #-> identifier;
    150151       
    151152        //
     
    160161        expression3             #-> LROUND expression RROUND
    161162                                        | constant
    162                                         | compoundIdentifier (functionInvocationRest _promote_)?
     163                                        | compoundVariable (functionInvocationRest _promote_)?
    163164                                        ;
    164165
     
    171172                                       
    172173                                                //expression4            -> DOT expression3 ;
    173                                                 //expression5    -> (LSQUARE INTEGER_CONST^^ RSQUARE) (expression5Rest)?   ;   
     174                                                //expression5    -> (LSQUARE INTEGER_CONST^ RSQUARE) (expression5Rest)?   ;     
    174175                                                //expression5Rest        -> DOT expression3 ;                                                                                           
    175176                                                                                                                                                                               
    176         functionInvocationRest -> LROUND^ (argumentExpressionList)? RROUND ; //(expression5Rest)?;
    177        
    178         argumentExpressionList  -> expression (COMMA expression)* ;                                                     
     177        functionInvocationRest -> LROUND^ (expression (COMMA expression)*)? RROUND ; //(expression5Rest)?;                                             
    179178                                                       
    180179        constant                                #-> stringConstant | signedIntegerConstant ;
     
    187186        stringConstant                  -> STRING | SQ_STRING ;
    188187       
    189         compoundIdentifier              -> identifier (DOT identifier)*;
     188        compoundVariable                #-> identifier (DOT^ identifier)*;
    190189                                                       
    191190        identifier                              -> IDENTIFIER ;
Note: See TracChangeset for help on using the changeset viewer.