1# Copyright (c) 2009 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright --- 118 unchanged lines hidden (view full) --- 127 } 128 129 literals = ':[]{}(),=' 130 131 tokens = [ 'EQ', 'NE', 'LT', 'GT', 'LE', 'GE', 132 'LEFTSHIFT', 'RIGHTSHIFT', 133 'NOT', 'AND', 'OR', 134 'PLUS', 'DASH', 'STAR', 'SLASH', |
135 'INCR', 'DECR', |
136 'DOUBLE_COLON', 'SEMI', 137 'ASSIGN', 'DOT', 138 'IDENT', 'LIT_BOOL', 'FLOATNUMBER', 'NUMBER', 'STRING' ] 139 tokens += reserved.values() 140 141 t_EQ = r'==' 142 t_NE = r'!=' 143 t_LT = r'<' --- 8 unchanged lines hidden (view full) --- 152 t_PLUS = r'\+' 153 t_DASH = r'-' 154 t_STAR = r'\*' 155 t_SLASH = r'/' 156 t_DOUBLE_COLON = r'::' 157 t_SEMI = r';' 158 t_ASSIGN = r':=' 159 t_DOT = r'\.' |
160 t_INCR = r'\+\+' 161 t_DECR = r'--' |
162 163 precedence = ( |
164 ('left', 'INCR', 'DECR'), |
165 ('left', 'AND', 'OR'), 166 ('left', 'EQ', 'NE'), 167 ('left', 'LT', 'GT', 'LE', 'GE'), 168 ('left', 'RIGHTSHIFT', 'LEFTSHIFT'), 169 ('left', 'PLUS', 'DASH'), 170 ('left', 'STAR', 'SLASH'), 171 ('right', 'NOT', 'UMINUS'), 172 ) --- 496 unchanged lines hidden (view full) --- 669 | expr OR expr 670 | expr RIGHTSHIFT expr 671 | expr LEFTSHIFT expr""" 672 p[0] = ast.InfixOperatorExprAST(self, p[1], p[2], p[3]) 673 674 # FIXME - unary not 675 def p_expr__unary_op(self, p): 676 """expr : NOT expr |
677 | INCR expr 678 | DECR expr |
679 | DASH expr %prec UMINUS""" |
680 p[0] = ast.PrefixOperatorExprAST(self, p[1], p[2]) |
681 682 def p_expr__parens(self, p): 683 "aexpr : '(' expr ')'" 684 p[0] = p[2] 685 686 def p_expr__is_valid_ptr(self, p): 687 "aexpr : IS_VALID '(' var ')'" 688 p[0] = ast.IsValidPtrExprAST(self, p[3], True) --- 28 unchanged lines hidden --- |