Changeset 4a063df for src/Parser


Ignore:
Timestamp:
Jan 17, 2020, 2:57:01 PM (5 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
cca568e
Parents:
768bd556
Message:

formatting, change waitfor to support a list of functions, separated by a colon, from a list of monitors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    r768bd556 r4a063df  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Dec 16 15:32:58 2019
    13 // Update Count     : 4409
     12// Last Modified On : Fri Jan 17 14:54:55 2020
     13// Update Count     : 4426
    1414//
    1515
     
    323323%type<op> ptrref_operator                               unary_operator                          assignment_operator
    324324%type<en> primary_expression                    postfix_expression                      unary_expression
    325 %type<en> cast_expression                               exponential_expression          multiplicative_expression       additive_expression
     325%type<en> cast_expression_list                  cast_expression                         exponential_expression          multiplicative_expression       additive_expression
    326326%type<en> shift_expression                              relational_expression           equality_expression
    327327%type<en> AND_expression                                exclusive_OR_expression         inclusive_OR_expression
     
    679679        | argument_expression
    680680        | argument_expression_list ',' argument_expression
    681                 { $$ = (ExpressionNode *)( $1->set_last( $3 )); }
     681                { $$ = (ExpressionNode *)($1->set_last( $3 )); }
    682682        ;
    683683
     
    691691field_name_list:                                                                                // CFA, tuple field selector
    692692        field
    693         | field_name_list ',' field                                     { $$ = (ExpressionNode *)$1->set_last( $3 ); }
     693        | field_name_list ',' field                                     { $$ = (ExpressionNode *)($1->set_last( $3 )); }
    694694        ;
    695695
     
    960960                { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( $3 ) ) ); }
    961961        | '[' push assignment_expression pop ',' tuple_expression_list ']'
    962                 { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)$3->set_last( $6 ) ) ); }
     962                { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)($3->set_last( $6 ) ) )); }
    963963        ;
    964964
     
    966966        assignment_expression_opt
    967967        | tuple_expression_list ',' assignment_expression_opt
    968                 { $$ = (ExpressionNode *)$1->set_last( $3 ); }
     968                { $$ = (ExpressionNode *)($1->set_last( $3 )); }
    969969        ;
    970970
     
    13071307        WAITFOR '(' cast_expression ')'
    13081308                { $$ = $3; }
    1309         | WAITFOR '(' cast_expression ',' argument_expression_list ')'
    1310                 { $$ = (ExpressionNode *)$3->set_last( $5 ); }
     1309//      | WAITFOR '(' cast_expression ',' argument_expression_list ')'
     1310//              { $$ = (ExpressionNode *)$3->set_last( $5 ); }
     1311        | WAITFOR '(' cast_expression_list ':' argument_expression_list ')'
     1312                { $$ = (ExpressionNode *)($3->set_last( $5 )); }
     1313        ;
     1314
     1315cast_expression_list:
     1316        cast_expression
     1317        | cast_expression_list ',' cast_expression
     1318                { $$ = (ExpressionNode *)($1->set_last( $3 )); }
    13111319        ;
    13121320
     
    14191427        asm_operand
    14201428        | asm_operands_list ',' asm_operand
    1421                 { $$ = (ExpressionNode *)$1->set_last( $3 ); }
     1429                { $$ = (ExpressionNode *)($1->set_last( $3 )); }
    14221430        ;
    14231431
     
    14351443                { $$ = new ExpressionNode( $1 ); }
    14361444        | asm_clobbers_list_opt ',' string_literal
    1437                 // set_last returns ParseNode *
    1438                 { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); }
     1445                { $$ = (ExpressionNode *)($1->set_last( new ExpressionNode( $3 ) )); }
    14391446        ;
    14401447
     
    23592366        | initializer_list_opt ',' initializer          { $$ = (InitializerNode *)( $1->set_last( $3 ) ); }
    23602367        | initializer_list_opt ',' designation initializer
    2361                 { $$ = (InitializerNode *)( $1->set_last( $4->set_designators( $3 ) ) ); }
     2368                { $$ = (InitializerNode *)($1->set_last( $4->set_designators( $3 ) )); }
    23622369        ;
    23632370
     
    23812388        designator
    23822389        | designator_list designator
    2383                 { $$ = (ExpressionNode *)( $1->set_last( $2 ) ); }
     2390                { $$ = (ExpressionNode *)($1->set_last( $2 )); }
    23842391        //| designator_list designator                                          { $$ = new ExpressionNode( $1, $2 ); }
    23852392        ;
     
    24782485                { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $1->build()) ); $$ = nullptr; }
    24792486        | type_list ',' type
    2480                 { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) ) ); }
     2487                { $$ = (ExpressionNode *)($1->set_last( new ExpressionNode( new TypeExpr( maybeMoveBuildType( $3 ) ) ) )); }
    24812488        | type_list ',' assignment_expression
    24822489                { SemanticError( yylloc, toString("Expression generic parameters are currently unimplemented: ", $3->build()) ); $$ = nullptr; }
Note: See TracChangeset for help on using the changeset viewer.