Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.yy

    re7aed49 re04ef3a  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun 22 21:20:17 2016
    13 // Update Count     : 1584
     12// Last Modified On : Mon Jun 13 15:00:23 2016
     13// Update Count     : 1578
    1414//
    1515
     
    3131// two levels of extensions. The first extensions cover most of the GCC C extensions, except for:
    3232//
    33 // 1. designation with and without '=' (use ':' instead)
    34 // 2. attributes not allowed in parenthesis of declarator
     33// 1. nested functions
     34// 2. generalized lvalues
     35// 3. designation with and without '=' (use ':' instead)
     36// 4. attributes not allowed in parenthesis of declarator
    3537//
    3638// All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall
     
    7779%token TYPEOF LABEL                                                                             // GCC
    7880%token ENUM STRUCT UNION
    79 %token OTYPE FTYPE DTYPE TRAIT                                                  // CFA
     81%token OTYPE FTYPE DTYPE TRAIT                                          // CFA
    8082%token SIZEOF OFFSETOF
    8183%token ATTRIBUTE EXTENSION                                                              // GCC
     
    104106%token ANDassign        ERassign        ORassign                                // &=   ^=      |=
    105107
    106 %token ATassign                                                                                 // @=
     108%token ATassign         REFassign                                                       // @=   :=
    107109
    108110// Types declaration
     
    575577        | unary_expression '=' assignment_expression
    576578                { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }
     579        | unary_expression REFassign assignment_expression
     580                { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); } // FIX ME
    577581        | unary_expression assignment_operator assignment_expression
    578582                { $$ =new CompositeExprNode( $2, $1, $3 ); }
Note: See TracChangeset for help on using the changeset viewer.