Changeset 3769


Ignore:
Timestamp:
Mar 29, 2014, 11:29:23 PM (4 years ago)
Author:
ksherdy
Message:

Added filter to s2k. Minor changes to s2k and b2k grammar.

Location:
proto/s2k/trunk/framework/input
Files:
3 edited

Legend:

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

    r3762 r3769  
    22// Tom Shermer, Ken Herdy
    33//
    4 // b2k - Very high-level IR for the expression of block-by-block stream processing.
     4// b2k - Very high-level IR for the expression of block-by-block parallel bit stream processing.
    55//
    66// Modified:    02-12-2012      Original definition.
     
    3333        INIT,
    3434        KERNEL,
     35        IN,
     36        OUT,
     37        INOUT,
    3538        FUNCTION,   
    3639        STRUCT,
     
    9093    // k e r n e l   d e c l a r a t i o n s
    9194    //
    92     kernelDef           ->     KERNEL kernelName LCURLY initDef funcDef (funcDef)* carryDeclare TERMINATOR RCURLY TERMINATOR? ; 
     95    kernelDef           ->  KERNEL kernelName LCURLY initDef funcDef (funcDef)* carryDeclare TERMINATOR RCURLY TERMINATOR? ; 
    9396    kernelName          #-> identifier ;
    9497
     
    104107    // k e r n e l   f u n c t i o n s
    105108    //
    106     funcDef             ->  FUNCTION funcName LROUND parameterList? RROUND basicBlockStmt TERMINATOR? ;
    107     parameterList       ->  parameter (COMMA parameter)* ;
     109    funcDef             ->  FUNCTION funcName LROUND parameterList RROUND basicBlockStmt TERMINATOR? ;
     110    parameterList       ->  (parameter (COMMA parameter)* )?;
    108111    funcName            #-> identifier ;
    109     parameter           ->  type parameterName ;
     112    parameter           ->  (parameterMode)? type parameterName ;
     113    parameterMode               ->  (IN | OUT | INOUT) ;
    110114    parameterName       #-> identifier ;
    111115    basicBlockStmt      #-> blockStmt ;
    112     //optFuncDef          #-> funcDef ;
    113     carryDeclare                #-> expr; // // KH: temp hack to append the CarryDeclare() macro
     116    carryDeclare                #-> expr; // KH: temp hack to append the CarryDeclare() macro
    114117
    115118    //
  • proto/s2k/trunk/framework/input/grammar/scatter/s2k.scatter

    r3767 r3769  
    3434    tokens {
    3535        FILTER,
     36        IN,
     37        OUT,
     38        INOUT,
    3639        STREAM,
    3740        STRUCT,
     
    8184    program                 {hasSymbolTable;} [],
    8285    structDecl              {hasSymbolTable;} [],
    83     funcDef                 {hasSymbolTable;} [],
     86    filterDef               {hasSymbolTable;} [],
    8487    blockStmt               {hasSymbolTable;} [],
    8588    identifier              {hasBinding;} [],
     
    97100grammar {
    98101
    99     program     -> (structDecl | funcDef) *;    // ( filterDef )* graph;
     102    program     -> (structDecl | filterDef) *;    // ( filterDef )* graph;
    100103
    101104    //
     
    108111    structMemberName    #-> identifier ;
    109112
    110     //
    111     // s t r e a m   f u n c t i o n   d e f i n i t i o n s
    112     //
    113     funcDef             ->  FILTER funcName LROUND parameterList? RROUND blockStmt TERMINATOR? ;                     
    114     parameterList       ->  parameter (COMMA parameter)*;
    115     funcName            #-> identifier ;
    116     parameter           ->  type parameterName ;
    117     parameterName       #-> identifier ;
     113    // KH: user-defined stream functions?
     114    //
     115    // s t r e a m   f u n c t i o n   d e f i n i t i o n s 
     116    //
     117    //funcDef             ->  FUNCTION returnType filterName LROUND parameterList RROUND blockStmt TERMINATOR? ;
     118    //returnType          ->  type;                     
     119    //parameterList       ->  (parameter (COMMA parameter)*)?;
     120    //funcName            #-> identifier ;
     121    //parameter           ->  type parameterName ;
     122    //parameterName       #-> identifier ;
    118123
    119124    //
    120125    // s t r e a m   f i l t e r   ( p r o c e d u r e )  d e f i n i t i o n s
    121126    //
    122 
    123     //filterDef             -> FILTER filterName LROUND filterParameterList? RROUND blockStmt TERMINATOR? ;               
    124     //filterName            #-> identifier ;
    125     //filterParameterList   ->  parameter (COMMA parameter)*;
    126     //filterParameter       ->  filterParameterMode? type filterParameterName ;
    127     //filterParameterMode   -> (IN | OUT | INOUT) ;
    128     //fillterParameterName  #-> identifier ;
     127    filterDef             ->  FILTER filterName LROUND filterParameterList RROUND blockStmt TERMINATOR? ;               
     128    filterName            #-> identifier ;
     129    filterParameterList   ->  ( filterParameter (COMMA filterParameter)* ) ? ;
     130    filterParameter       ->  filterParameterMode? type filterParameterName ;
     131    filterParameterMode   ->  (IN | OUT | INOUT) ; // KH: not implemented
     132    filterParameterName   #-> identifier ;
    129133
    130134    //
     
    135139    varDecl                     ->      type varName (ASSIGN^ expr) ? TERMINATOR ;
    136140    varName                     #->     identifier ; 
    137     funcCallOrAssignStmt        #->     expr (assignRest _promote_) ? TERMINATOR ; // add SA to validate expr is a function call
     141    funcCallOrAssignStmt        #->     expr (assignRest _promote_) ? TERMINATOR ; // KH: SA must validate 'expr' is a 'funcCall'
    138142    assignRest                  ->      assignOperator^! expr ;
    139143    assignOperator              ->      ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN |
  • proto/s2k/trunk/framework/input/test/s2k/all/all.s2k

    r3767 r3769  
    1919        temp4 |= temp1 ^ temp2;
    2020        temp4 ^= temp1 & temp2;
    21 };filter BasicExpressions() {
     21};FILTER BasicExpressions(IN int a) {
    2222
    2323        temp4 = temp;
Note: See TracChangeset for help on using the changeset viewer.