Ignore:
Timestamp:
Apr 1, 2014, 6:14:20 PM (6 years ago)
Author:
ksherdy
Message:

Minors updates to b2k grammar.

File:
1 edited

Legend:

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

    r3769 r3778  
    11//
    2 // Tom Shermer, Ken Herdy
     2// b2k - A very high-level IR for the expression of block-by-block parallel bit stream processing.
    33//
    4 // b2k - Very high-level IR for the expression of block-by-block parallel bit stream processing.
     4// 02-12-2012      Original definition.
     5// 29-03-2013      Added IDISA function call.
     6// 06-04-2013      Updated to Scatter with types.
    57//
    6 // Modified:    02-12-2012      Original definition.
    7 //              29-03-2013      Added IDISA function call.
    8 //              06-04-2013      Updated to Scatter with types.
    98//
     9//
     10// Tom Shermer <shermer at sfu dot ca>
     11// Ken Herdy <ksherdy at sfu dot ca>
     12//
     13
    1014
    1115types {
     
    4246        BOOL,
    4347        BITFIELD    "BitField",
    44         BITBLOCK    "BitBlock", // alias for architecture dependent SIMD type
     48        BITBLOCK    "BitBlock",
    4549        //CODEBLOCK,
    4650        IF,
     
    7983grammar {
    8084   
    81     program     -> (structDecl | kernelDef) * ;
     85    program     -> (structDef | kernelDef) * ;
    8286   
    8387    //
    84     // s t r u c t   d e c l a r a t i o n s 
     88    // s t r u c t   d e f i n i t i o n 
    8589    //
    86     structDecl          ->  STRUCT structName structDeclBody TERMINATOR? ;
    87     structDeclBody      ->  LCURLY (structMember TERMINATOR)+ RCURLY ;
     90    structDef           ->  STRUCT structName structDefBody TERMINATOR? ;
     91    structDefBody       ->  LCURLY (structMember TERMINATOR)+ RCURLY ;
    8892    structMember        ->  structMemberType structMemberName ;
    89     structMemberType    #-> structType | bitBlockType ;
     93    structMemberType    #-> bitBlockType ;
    9094    structMemberName    #-> identifier ;
    9195
    9296    //
    93     // k e r n e l   d e c l a r a t i o n s
     97    // k e r n e l   d e f i n i t i o n
    9498    //
    95     kernelDef           ->  KERNEL kernelName LCURLY initDef funcDef (funcDef)* carryDeclare TERMINATOR RCURLY TERMINATOR? ; 
     99    kernelDef           ->  KERNEL kernelName LCURLY kernelInitDef (kernelFuncDef)+ carryDeclare TERMINATOR RCURLY TERMINATOR? ; 
    96100    kernelName          #-> identifier ;
    97101
     
    99103    // k e r n e l   p r o p e r t i e s 
    100104    //
    101     initDef             #-> INIT LCURLY kernelProperty* RCURLY TERMINATOR? ;
     105    kernelInitDef       #-> INIT LCURLY kernelProperty* RCURLY TERMINATOR? ;
    102106    kernelProperty      ->  propertyName ASSIGN propertyValue TERMINATOR ;
    103107    propertyName        #-> identifier ;
     
    105109
    106110    //
    107     // k e r n e l   f u n c t i o n s
     111    // k e r n e l   f u n c t i o n   d e f i n i t i o n
    108112    //
    109     funcDef             ->  FUNCTION funcName LROUND parameterList RROUND basicBlockStmt TERMINATOR? ;
    110     parameterList       ->  (parameter (COMMA parameter)* )?;
    111     funcName            #-> identifier ;
    112     parameter           ->  (parameterMode)? type parameterName ;
    113     parameterMode               ->  (IN | OUT | INOUT) ;
    114     parameterName      #-> identifier ;
    115     basicBlockStmt      #-> blockStmt ;
     113    kernelFuncDef       ->  FUNCTION kernelFuncName LROUND kernelParameterList RROUND kernelFuncBody TERMINATOR? ;
     114    kernelParameterList ->  (kernelParameter (COMMA kernelParameter)* )?;
     115    kernelFuncName      #-> identifier ;
     116    kernelParameter     ->  (kernelParameterMode)? type kernelParameterName ;
     117    kernelParameterMode ->  (IN | OUT | INOUT) ;
     118    kernelParameterName #-> identifier ;
     119    kernelFuncBody      #-> blockStmt ;
    116120    carryDeclare                #-> expr; // KH: temp hack to append the CarryDeclare() macro
    117121
     
    143147    // e x p r e s s i o n s
    144148    //   
    145     expr            #-> LROUND expr RROUND
    146                     | constant
    147                     | compoundIdentifier ((funcCallRest _promote_) | (idisaFuncCallRest _promote_)) ? ;
     149    expr                #-> LROUND expr RROUND
     150                         | constant
     151                         | compoundIdentifier ((funcCallRest _promote_) | (idisaFuncCallRest _promote_)) ? ;
    148152
    149153    constant            #->     stringConstant | integerConstant ;
Note: See TracChangeset for help on using the changeset viewer.