Пример #1
0
def p_lookup(p):
    """lookup : load DOT NAME
    """
    p[0] = Node("Lookup")
    p[0].var = p[1]
    p[0].var.ctl = "store"
    p[0].attr = p[3]
Пример #2
0
def p_array(p):
    '''array : unary_expr list %prec LBRACKET
                | tuple list %prec LBRACKET
    '''
    p[0]= Node('Subscript')
    p[0].var = p[1]
    p[0].slice = p[2]
Пример #3
0
def p_array(p):
    '''array : unary_expr list %prec LBRACKET
                | tuple list %prec LBRACKET
    '''
    p[0]= Node('ARRAY')
    p[0].var = p[1]
    p[0].elems = p[2].elems
Пример #4
0
def p_arrayAccess1(p):
    """arrayAccess :  load LBRACKET expr RBRACKET
                        | load LBRACKET range RBRACKET
    """
    p[0] = Node("ArrayAccess")
    p[0].var = p[1]
    p[0].var.ctl = "store"
    p[0].args = p[3]
Пример #5
0
def p_lookup(p):
    '''lookup : unary_expr DOT IDENTIFIER %prec DOT
                | list DOT IDENTIFIER %prec DOT
                | tuple DOT IDENTIFIER %prec DOT
    '''
    p[0] = Node('LOOKUP')
    p[0].var = p[1]
    p[0].attr = p[3]
Пример #6
0
def p_ptr(p):
    '''ptr : AMP unary_expr
                | AMP tuple
                | AMP list
    '''

    p[0] =Node('PTR')
    p[0].var = p[2] 
Пример #7
0
def p_vdef1(p):
    '''vdef : IDENTIFIER unary_expr %prec DEF
                 | ptr   unary_expr %prec DEF
                 | fptr  unary_expr %prec DEF
                 | tuple  unary_expr %prec DEF
    '''
    p[0] = Node('VDEF')
    t = p[1]
    p[0].datatype = t
    p[0].var = p[2]
Пример #8
0
def p_varDef(p):
    """varDef : type NAME
                | type NAME LBRACKET INT RBRACKET 
    """
    p[0] = Node("VarDef")
    p[0].dtype = p[1]
    p[0].var = p[2]
    if len(p) > 4:
        p[0].size = p[4].value
    else:
        p[0].size = None
Пример #9
0
def p_ptr(p):
    """ptr : AMP NAME"""
    p[0] = Node("Ptr")
    p[0].var = p[2]
Пример #10
0
def p_atPtr(p):
    """atPtr : AT load"""
    p[0] = Node("At")
    p[0].var = p[2]
Пример #11
0
def p_arrayAccess2(p):
    """arrayAccess :  load LBRACKET RBRACKET"""
    p[0] = Node("ArrayAccess")
    p[0].var = p[1]
    p[0].var.ctl = "store"
    p[0].args = []
Пример #12
0
def p_expr3(p):
    """expr : NOT expr"""
    p[0] = Node("Not")
    p[0].var = p[2]