Esempio n. 1
0
 def p_unary_expression_3(self, p):
     """ unary_expression    : SIZEOF unary_expression
                             | SIZEOF LPAREN type_name RPAREN
     """
     p[0] = c_ast.UnaryOp(
         p[1],
         p[2] if len(p) == 3 else p[3],
         self._coord(p.lineno(1)))
Esempio n. 2
0
 def p_postfix_expression_5(self, p):
     """ postfix_expression  : postfix_expression PLUSPLUS
                             | postfix_expression MINUSMINUS
     """
     # 添加前缀p以表示这是后缀的运算符,与上面前缀的进行区分
     p[0] = c_ast.UnaryOp('p' + p[2], p[1], p[1].coord)
Esempio n. 3
0
 def p_unary_expression_2(self, p):
     """ unary_expression    : PLUSPLUS unary_expression
                             | MINUSMINUS unary_expression
                             | unary_operator cast_expression
     """
     p[0] = c_ast.UnaryOp(p[1], p[2], p[2].coord)
Esempio n. 4
0
 def p_postfix_expression_5(self, p):
     """ postfix_expression  : postfix_expression PLUSPLUS
                             | postfix_expression MINUSMINUS
     """
     p[0] = c_ast.UnaryOp('p' + p[2], p[1], p[1].coord)