Changeset 2368


Ignore:
Timestamp:
Sep 15, 2012, 3:20:00 PM (6 years ago)
Author:
ksherdy
Message:

Updated Pablo test cases.

Location:
proto/pablo/input
Files:
14 added
3 deleted
2 edited
9 moved

Legend:

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

    r2366 r2368  
    109109        // s t a t e m e n t s
    110110        //
    111         statement                                                       #-> (localVarDecl | functionCallOrAssignmentStatement | ifStatement | whileStatement | returnStatement) TERMINATOR?     ;
    112        
    113         localVarDecl                                            -> VAR type localVarDeclList ;
    114        
    115         localVarDeclList                                        -> localVarDecl (COMMA localVarDecl)* ;
    116                
    117         localVarDecl                                            -> identifier (assignmentStatement _promote_) ?;
    118                
    119         functionCallOrAssignmentStatement       #->  expression3 (assignmentStatement _promote_ )?;
     111        statement                                                       -> (functionCallOrAssignmentStatement | ifStatement | whileStatement | returnStatement | localVarDecl) TERMINATOR ? ;
     112                       
     113        functionCallOrAssignmentStatement       #-> expression3 (assignmentStatement _promote_ )? ;
    120114                       
    121115        assignmentStatement                                     -> assignmentOperator expression ;
     
    123117        assignmentOperator                                      -> ASSIGN | AND_ASSIGN | OR_ASSIGN | NOT_ASSIGN | XOR_ASSIGN ;                         
    124118                                       
    125         ifStatement                                                     -> IF LROUND ifCondition RROUND blockStatement (ELSE blockStatement)? ;
     119        ifStatement                                                     -> IF LROUND ifCondition RROUND ifBlock (ELSE elseBlock)? ;
    126120                                                       
    127121        ifCondition                                                     -> expression ;                                         
    128122                                                       
    129         whileStatement                                          -> WHILE LROUND whileCondition RROUND blockStatement ;
     123        ifBlock                                                         -> blockStatement ;
     124       
     125        elseBlock                                                       -> blockStatement ;                                             
     126                                                       
     127        whileStatement                                          -> WHILE LROUND whileCondition RROUND whileBlock ;
    130128       
    131129        whileCondition                                          -> expression ;
    132130       
     131        whileBlock                                                      -> blockStatement ;
     132       
    133133        returnStatement                                         -> RETURN (expression)? ;
    134134       
     135        localVarDecl                                            -> VAR type localVarDeclList ;
     136       
     137        localVarDeclList                                        -> localVarDecl (COMMA localVarDecl)* ;
     138               
     139        localVarDecl                                            -> identifier (assignmentStatement _promote_) ? ;
     140       
    135141       
    136142        //
     
    144150       
    145151        expression3             #-> LROUND expression RROUND
    146                                         | INTEGER_CONST
     152                                        | constant
    147153                                        | identifier (
    148154                                                (functionCallRest _promote_)?
     
    156162        expression5     -> (LSQUARE INTEGER_CONST^^ RSQUARE) (expression5Rest)?   ;     
    157163               
    158         expression5Rest -> DOT expression ;     
    159                
    160         integer                 -> INTEGER_CONST ;                                                                                     
     164        expression5Rest -> DOT expression ;                                                                                             
    161165                                                                                                                                                                               
    162166        functionCallRest                -> LROUND^^ (argumentExpressionList)? RROUND;
  • proto/pablo/input/test/pablo/funcDef/funcDef1.pablo

    r2365 r2368  
    11function void Lex() {};
    2 
    3 function stream U8(stream a, stream b, stream c) {};
    4 
    5 function struct Lex ClassifyBytes(struct BasisBit basis) {};
    6 
    7 function tuple T Foo(stream a, idType b) {};
    8 
    9 function void Foo() {};
  • proto/pablo/input/test/pablo/parabix2/parabix2.pablo

    r2365 r2368  
    11# Demo - Hand ported Python pablo code (parses)
    22#
    3 # parabix2_compilable.py
    4 #
    5 # Parallel XML Parsing with Bitstream Addition
    6 #
    7 # - Complete prototype for all bitstream computations in Parabix2
    8 # - Optimized for compilation
    9 # - Separate compilation
    10 
    11 # Robert D. Cameron
    12 # July 29, 2010
    13 #
    14 
    15 #import bitutil
    16 
    17 # Grammar Modifications (WARNING)
    18 #
    19 # '-' Not Supported.
     3# '-' manually removed.
    204
    215struct Basis_bits{     
  • proto/pablo/input/test/pablo/statements/assign/assign1.pablo

    r2356 r2368  
    11function void Assignments() {
    2         stream s = 4;
    3         stream s &= 4;
    4         stream s |= 4;
    5         stream s ~= 4;
    6         stream s ^= 4;
     2        var stream s;
     3        s = 0;
     4        s &= 0;
     5        s |= 0;
     6        s ~= 0;
     7        s ^= 0;
    78};
  • proto/pablo/input/test/pablo/statements/assign/assign4.pablo

    r2363 r2368  
    1 function void PostfixExpressions() {
     1function void RecordExpressions() {
    22
    33        // records
     
    77        temp1.temp2 = temp4;
    88        temp1.temp2.temp3 = temp4;
    9        
    10         // tuples
    11         temp4 = temp[0];
    12         temp4 = temp.temp1[0];
    13         temp4 = temp[0].temp1[1];
    14         temp4 = temp.temp1[0].temp3;
    15        
    16         temp[0] = temp4;
    17         temp.temp1[0] = temp4;
    18         temp[0].temp1[1] = temp4;
    19         temp.temp1[0].temp3 = temp4;
    20        
    21         // functions and casts
    22        
    23         temp4 = functionCall();
    24         temp4 = functionCall(a,0);
    25         temp4 = functionCall("string");
    26         temp4 = library.functionCall();
    27         temp4 = path.to.functionCall();
    28        
     9               
    2910};
  • proto/pablo/input/test/pablo/statements/if/if1.pablo

    r2365 r2368  
    11function void Function() {             
    2         if(cursor & a) {
     2        if(cursor) {
    33
    44        }
  • proto/pablo/input/test/pablo/statements/if/if2.pablo

    r2365 r2368  
    1 function void Function(struct TagCallouts tagCallouts, struct Lex lex) {       
     1function void Function() {     
    22       
    33        if(cursor & a) {
  • proto/pablo/input/test/pablo/statements/if/if3.pablo

    r2365 r2368  
    1 function void Function(struct TagCallouts tagCallouts, struct Lex lex) {       
     1function void Function() {     
    22       
    33        if(cursor & a) {
    4                 if(cursor & b) {
    5                
    6                 }
    7                 else {
    8                
    9                 }
     4
    105        } else {
    11                 if(cursor & b) {
    12                
    13                 }
    14                 else {
    15                
    16                 }
     6
    177        }
    188       
    19         return cursor;
    209};
  • proto/pablo/input/test/pablo/statements/while/while2.pablo

    r2367 r2368  
    1 function void Function(struct TagCallouts tagCallouts, struct Lex lex) {       
    2 
    3         var stream starts_accum = 0;
    4         var stream ends_accum = 0;     
     1function void Function() {     
     2        var stream cursor1;
    53       
    6         var stream cursor = pablo.ScanToFirst(lex.opener);
    7        
    8         while (cursor) {
    9                 starts_accum |= cursor;
    10                 cursor = pablo.ScanTo(cursor, lex.marker &~ cursor);
    11                 ends_accum |= cursor;
    12                 cursor = pablo.ScanTo(cursor, (lex.marker | lex.terminator) &~ cursor);
    13                 cursor = cursor & lex.marker;
     4        while (cursor1) {
     5                var stream cursor2;
     6                while(cursor2) {
     7                        cursor = pablo.Advance(cursor);
     8                        cursor = cursor &~ terminator;
     9                }
    1410        }
    1511};
Note: See TracChangeset for help on using the changeset viewer.