Changeset 1025

Show
Ignore:
Timestamp:
02/08/10 13:37:52 (6 months ago)
Author:
weyrick
Message:

add bitwise not and resolve some conflicts

Location:
trunk/rphp
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/rphp/compiler/analysis/grammar_src/rphp_grammar.y

    r1024 r1025  
    214214 
    215215/** ASSOCIATIVITY AND PRECEDENCE (low to high) **/ 
    216 %left T_INCLUDE T_INCLUDE_ONCE T_REQUIRE T_REQUIRE_ONCE. 
     216%left T_INCLUDE T_INCLUDE_ONCE T_REQUIRE T_REQUIRE_ONCE T_EVAL. 
    217217%left T_COMMA. 
    218218%left T_BOOLEAN_OR_LIT. 
     
    220220%left T_BOOLEAN_AND_LIT. 
    221221%right T_PRINT. 
    222 %left T_ASSIGN T_CONCAT_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_PLUS_EQUAL T_MINUS_EQUAL T_MOD_EQUAL T_DIV_EQUAL T_MUL_EQUAL. 
     222%left T_ASSIGN T_CONCAT_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_PLUS_EQUAL T_MINUS_EQUAL T_MOD_EQUAL T_DIV_EQUAL T_MUL_EQUAL T_SL_EQUAL T_SR_EQUAL. 
    223223%left T_QUESTION T_COLON. 
    224224%left T_BOOLEAN_AND T_BOOLEAN_OR. 
     
    228228%nonassoc T_EQUAL T_NOT_EQUAL T_IDENTICAL T_NOT_IDENTICAL. 
    229229%nonassoc T_GREATER_THAN T_LESS_THAN T_GREATER_OR_EQUAL T_LESS_OR_EQUAL. 
     230%left T_SL T_SR. 
    230231%left T_PLUS T_MINUS T_DOT. 
    231232%left T_DIV T_MOD T_MULT. 
    232233%right T_BOOLEAN_NOT. 
    233234%nonassoc T_INSTANCEOF. 
    234 %right T_INC T_DEC T_FLOAT_CAST T_STRING_CAST T_BINARY_CAST T_UNICODE_CAST T_ARRAY_CAST T_OBJECT_CAST T_INT_CAST T_BOOL_CAST T_UNSET_CAST. 
     235%right T_TILDE T_INC T_DEC T_FLOAT_CAST T_STRING_CAST T_BINARY_CAST T_UNICODE_CAST T_ARRAY_CAST T_OBJECT_CAST T_INT_CAST T_BOOL_CAST T_UNSET_CAST T_AT. 
     236%right T_LEFTSQUARE. 
    235237%nonassoc T_NEW T_CLONE. 
    236238%left T_ELSE T_ELSEIF. 
     239%right T_STATIC T_PROTECTED T_PRIVATE T_ABSTRACT T_FINAL T_PUBLIC. 
     240 
    237241 
    238242/** GOAL **/ 
     
    13521356    A->setLine(CURRENT_LINE); 
    13531357} 
    1354  
     1358unaryOp(A) ::= T_TILDE expr(R). 
     1359{ 
     1360    A = new (CTXT) AST::unaryOp(R, AST::unaryOp::BITWISENOT); 
     1361    A->setLine(CURRENT_LINE); 
     1362} 
    13551363/** BINARY OPERATORS **/ 
    13561364%type binaryOp {AST::binaryOp*} 
  • trunk/rphp/include/rphp/analysis/pAST.h

    r1024 r1025  
    16701670 
    16711671public: 
    1672     enum opKind { NEGATIVE, POSITIVE, LOGICALNOT }; 
     1672    enum opKind { NEGATIVE, POSITIVE, LOGICALNOT, BITWISENOT }; 
    16731673 
    16741674private: