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"""
674 p[0] = PrefixOperatorExpr(p[1], p[2])
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 ---