Пример #1
0
def p_type_qualifier(self, p):
    """
    type_qualifier  :   CONST
                    |   RESTRICT
                    |   VOLATILE
    """
    p[0] = ast.TextNode('%s' % p[1])
Пример #2
0
def p_expression_4(self, p):
    """
    expression  :   arg PLUSPLUS
                |   arg MINUSMINUS
                |   PLUSPLUS arg
                |   MINUSMINUS arg
    """
    p[0] = ast.TextNode("%s%s" % (p[1], p[2]))
Пример #3
0
def p_storage_class(self, p):
    """
    storage_class   :   AUTO
                    |   REGISTER
                    |   STATIC
                    |   EXTERN
                    |   TYPEDEF
    """
    p[0] = ast.TextNode('%s' % p[1])
Пример #4
0
def p_constant_1(self, p):
    """
    constant    :   STRING_LITERAL
                |   INT_CONST_DEC
                |   INT_CONST_HEX
                |   INT_CONST_OCT
                |   FLOAT_CONST
                |   CHAR_CONST
    """
    p[0] = ast.TextNode('%s' % p[1])
Пример #5
0
def p_type_spec_1(self, p):
    """
    type_spec   :   VOID
                |   CHAR
                |   SHORT
                |   INT
                |   LONG
                |   FLOAT
                |   DOUBLE
                |   SIGNED
                |   UNSIGNED
                |   ID
    """
    p[0] = ast.TextNode('%s' % p[1])
Пример #6
0
def p_f_arg_list_1(self, p):
    'f_arg_list :   empty'
    p[0] = ast.TextNode('')
Пример #7
0
def p_f_arg_list_2(self, p):
    'f_arg_list :   decl_specs type_spec variable'
    p[0] = ast.TextNode('%s%s %s' % (p[1], p[2], p[3]))
Пример #8
0
def p_array_expression_3(self, p):
    'array_expression   :   empty'
    p[0] = ast.TextNode('')
Пример #9
0
def p_expression_7(self, p):
    'expression :   SIZEOF expression'
    p[0] = ast.TextNode('%s %s' % (p[1], p[2]))
Пример #10
0
def p_decl_specs_1(self, p):
    'decl_specs :   empty'
    p[0] = ast.TextNode('')
Пример #11
0
def p_decl_specs_3(self, p):
    'decl_specs :   decl_specs storage_class'
    p[0] = ast.TextNode('%s %s' % (p[1], p[2]))
Пример #12
0
def p_expression_5(self, p):
    """
    expression  :   NOT expression
                |   LNOT expression
    """
    p[0] = ast.TextNode("%s%s" % (p[1], p[2]))
Пример #13
0
def p_label(self, p):
    'label  :   ID COLON'
    p[0] = ast.TextNode("%s" % p[1])
Пример #14
0
def p_arg_3(self, p):
    'arg   :   arg_name array'
    p[0] = ast.TextNode('%s%s' % (p[1], p[2]))
Пример #15
0
def p_arg_name_1(self, p):
    'arg_name   :   ID'
    p[0] = ast.TextNode('%s' % p[1])
Пример #16
0
def p_arg_2(self, p):
    'arg   :   TIMES arg %prec POINTER'
    p[0] = ast.TextNode('*%s' % p[2])
Пример #17
0
def p_arg_1(self, p):
    'arg   :   arg_name'
    p[0] = ast.TextNode('%s' % p[1])
Пример #18
0
def p_expression_8(self, p):
    'expression :   expression CONDOP expression COLON expression'
    p[0] = ast.TextNode('%s ? %s : %s' % (p[1], p[3], p[5]))
Пример #19
0
def p_f_arg_list_3(self, p):
    'f_arg_list :   f_arg_list COMMA decl_specs type_spec variable'
    p[0] = ast.TextNode('%s, %s%s %s' % (p[1], p[3], p[4], p[5]))
Пример #20
0
def p_function_call(self, p):
    'function_call  :   func_name LPAREN arglist RPAREN'
    p[0] = ast.TextNode('%s(%s)' % (p[1], p[3]))
Пример #21
0
def p_f_arg_list_4(self, p):
    'f_arg_list :   f_arg_list COMMA ELLIPSIS'
    p[0] = ast.TextNode('%s, ...' % p[1])
Пример #22
0
def p_func_name(self, p):
    'func_name  :   ID'
    p[0] = ast.TextNode('%s' % p[1])
Пример #23
0
def p_for_header_1(self, p):
    'for_header :   LPAREN initializer SEMI expression SEMI expression RPAREN'
    p[0] = ast.TextNode("(%s; %s; %s)" % (p[2], p[4], p[6]))
Пример #24
0
def p_array_expression_2(self, p):
    'array_expression   :   TIMES'
    p[0] = ast.TextNode('%s' % p[1])
Пример #25
0
def p_decl_specs_2(self, p):
    'decl_specs :   decl_specs type_qualifier'
    p[0] = ast.TextNode('%s %s' % (p[1], p[2]))
Пример #26
0
def p_arglist_1(self, p):
    'arglist    :   arg'
    p[0] = ast.TextNode('%s' % p[1])
Пример #27
0
def p_decl_specs_4(self, p):
    'decl_specs :   decl_specs func_spec'
    p[0] = ast.TextNode('%s %s' % (p[1], p[2]))
Пример #28
0
def p_arglist_2(self, p):
    'arglist    :   arglist COMMA arg'
    p[0] = ast.TextNode('%s, %s' % (p[1], p[3]))
Пример #29
0
def p_arglist_0(self, p):
    'arglist    :   empty'
    p[0] = ast.TextNode('')
Пример #30
0
def p_expression_6(self, p):
    'expression :   LPAREN expression RPAREN'
    p[0] = ast.TextNode("(%s)" % p[2])