Changeset 4175


Ignore:
Timestamp:
Sep 13, 2014, 6:11:43 PM (5 years ago)
Author:
ksherdy
Message:

Minor fixes to b2k grammar.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/s2k/trunk/framework/input/grammar/scatter/b2k.scatter

    r4116 r4175  
    4444        STRUCT,
    4545        INT,
    46         //BOOL,
    47         //BITFIELD         "BitField",
    4846        BITBLOCK         "BitBlock",
    4947        //CODEBLOCK,
     
    8179interfaces {
    8280    intValued {int value = 0;},
    83     hasFieldWidth   {int fieldWidth = 1;},
     81    // hasFieldWidth   {int fieldWidth = 1;},
     82    intSize   {int size = 1;},
    8483}
    8584
    8685nodes {
    87     unaryOperator           {}                     [expr2],
     86    unaryOperator           {}                     [expr2 indexOperatorRest],
    8887    binaryOperator          {}                     [expr expr1 expr3 expr4],
    8988    assign                  {}                     [assignRest],
    9089    funcCall                {}                     [funcCallRest],
    9190    idisaFuncCall           {}                     [idisaFuncCallRest],
    92     bitBlockType            {hasFieldWidth;}  [],
     91    bitBlockType            {}                     [],
     92    bitBlockArrayType       {intSize;}             [bitBlockArrayTypeRest],
    9393    integerConstant         {intValued;}           [fieldWidthSpecifier],  // codeBlockWidthSpecifier ],
    9494    // primitiveType        {}                     [intType], // KH: update S2B
    95     fieldWidthType          {int fieldWidth = 1;}  [],
     95    // fieldWidthType          {int fieldWidth = 1;}  [],
    9696    // codeBlockWidth{int codeBlockWidth = 128;}   [],
    9797}
     
    118118    // k e r n e l   p r o p e r t i e s 
    119119    //
    120     kernelInitDef       #-> INIT LCURLY kernelProperty* RCURLY TERMINATOR? ;
     120    kernelInitDef       -> INIT LCURLY kernelProperty* RCURLY TERMINATOR? ;
    121121    kernelProperty      ->  identifier ASSIGN propertyValue TERMINATOR ;
    122     propertyValue       ->  LSQUARE integerConstant (COMMA integerConstant)* RSQUARE ;
     122    propertyValue       ->  LCURLY integerConstant (COMMA integerConstant)* RCURLY ;
    123123
    124124    //
     
    129129    kernelParameter     ->  (kernelParameterMode COLON)? type identifier ;
    130130    kernelParameterMode ->  (IN | OUT | INOUT) ;
    131     kernelFuncBody      #-> blockStmt ;
    132     carryDeclare                #-> expr; // KH: temp hack to append the CarryDeclare() macro
     131    kernelFuncBody      # -> blockStmt ;
     132    carryDeclare                    #-> expr; // KH: temp hack to append the CarryDeclare() macro
    133133
    134134    //
     
    173173    ifStmt                  ->  IF expr blockStmt (ELSE blockStmt)? ;             
    174174    whileStmt               ->  WHILE expr blockStmt ;
    175    
    176     // KH: add forStmt SA, lowerBound <= upperBound, stride != 0
    177         // KH: count controlled for loop to support reductions         
    178         forStmt                     ->      FOR identifier IN stridedRange blockStmt ;
    179         //indexTypeDecl             ->      indexType identifier ; // ?
    180     stridedRange                ->      range step ;
     175
     176          // KH: count controlled for loop to support reductions // Add SA, lowerBound <= upperBound, stride != 0               
     177          forStmt                     ->      FOR identifier IN stridedRange blockStmt ;
     178          stridedRange                ->      range step ;
    181179    range                       ->      integerConstant DDOT integerConstant ;
    182180    step                        #->     (BY integerConstant) | epsilon {@value = 1;} ;
     
    193191    expr4       #-> expr5 ((MULTIPLY^ | DIVIDE^) expr4)?  _leftAssoc_ ;
    194192    expr5       #-> ((PLUS^^ | MINUS^^)? expr6) | ((NOT^^)* expr6)                          ;
    195     expr6       #-> compoundIdentifier ((funcCallRest _promote_) | (idisaFuncCallRest _promote_)) ? 
     193    expr6       #-> compoundIdentifier ((funcCallRest _promote_) | (idisaFuncCallRest _promote_) | indexOperatorRest _promote_) ? 
    196194                |   LROUND expr RROUND
    197195                |   constant ;
     
    206204    idisaFuncCallRest   ->      LANGLE^ fieldWidth RANGLE LROUND idisaFuncCallArgList RROUND; // KH: parameterized function call ?
    207205    fieldWidth          ->      integerConstant ;                                             // KH: fieldWidthSpecifier / expr ?
    208     idisaFuncCallArgList    ->  (expr (COMMA expr)*) ? ;
     206    idisaFuncCallArgList    ->  (expr (COMMA expr)*) ?;
     207    indexOperatorRest   ->      LSQUARE expr RSQUARE ; // KH: validate integer constant expression ?
    209208
    210209    //
     
    213212    type                #-> primitiveType   |
    214213                            bitBlockType    |
    215                             // bitFieldType |
    216214                            structType      |
    217215                            kernelType      ;
     
    220218
    221219    intType             ->  INT ;       // { @type = {{PrimitiveType.INTEGER}}; } ;
    222     bitBlockType        ->  BITBLOCK fieldWidthSpecifier! {   @fieldWidth = @:value;
    223                                                                     //@fieldWidth ; // KH ?
    224                                                                 } ;
    225 
    226     // bitFieldType        ->  BITFIELD  fieldWidthSpecifier!
    227     //                                        {   @fieldWidth = @:value;
    228     //                                        // @type = {{ new BitFieldType(%?) }} , @fieldWidth ;
    229     //                                        } ;
     220    bitBlockType        ->  BITBLOCK ;  //fieldWidthSpecifier! {   @fieldWidth = @:value;
     221                                        //                            //@fieldWidth ; // KH ?
     222                                        //                      } ;
     223
     224    bitBlockArrayTypeRest  -> LSQUARE expr RSQUARE ; // KH: validate integer constant expression
    230225
    231226    fieldWidthSpecifier    #-> (LANGLE integerConstant RANGLE )
Note: See TracChangeset for help on using the changeset viewer.