Пример #1
0
def p_fDef(p):
    """fDef : DEF NAME defTuple ARROW EXCLAMATION NAME block"""
    p[0] = Node("Fdef")
    p[0].func = p[2]
    p[0].args = p[3]
    p[0].rettype = p[6]
    p[0].body = p[7]
Пример #2
0
def p_for3(p):
    """for : FOR NAME EQ range block
    """
    p[0] = Node("For")
    p[0].iter = p[2]
    p[0].range = p[4]
    p[0].body = p[5]
Пример #3
0
def p_for1(p):
    """for : FOR NAME IN load block
    """
    p[0] = Node("ForEach")
    p[0].iter = p[2]
    p[0].list = p[4]
    p[0].body = p[5]
Пример #4
0
def p_elif2(p):
    '''elif : ELIF expr block elif
                | ELIF expr block else
    '''
    p[0] =Node('IF')
    p[0].cond  = p[2]
    p[0].body = p[3].body
    p[0].orelse = p[4]
Пример #5
0
def p_if2(p):
    '''if : IF expr block elif
              | IF expr block else
    '''
    p[0] = Node('IF')
    p[0].cond = p[1]
    p[0].body=p[3].body
    p[0].orelse = p[4]
Пример #6
0
def p_foreach(p):
    '''foreach : FOR IDENTIFIER IN expr block
                   | FOR vdef IN expr block
    '''
    p[0] = Node('Foreach')
    p[0].iter = p[2]
    p[0].target = p[4]
    p[0].body = p[5].body
Пример #7
0
def p_for2(p):
    """for : FOR nameList IN load block
    """
    x = Node("Tuple")
    p[0] = Node("ForEach")
    p[0].iter = x
    p[0].list = p[4]
    p[0].body = p[5]
    p[0].iter.elems = p[2]
Пример #8
0
def p_fdef(p):
    '''fdef : DEF IDENTIFIER tuple block
    '''

    p[0] = Node('FuncDef')
    p[0].name = p[2].value
    p[0].args = Node('Arguments')
    p[0].args.args = p[3].elems
    p[0].body = p[4].body
Пример #9
0
def p_for(p):
    '''for : FOR IDENTIFIER EQ expr COMMA expr block
               | FOR vdef EQ expr COMMA expr block
    '''
    p[0] = Node('FOR')
    p[0].iter = p[2]
    p[0].start = p[4]
    p[0].step = 1
    p[0].stop = p[6]
    p[0].body = p[7].body 
Пример #10
0
def p_program(p):
    """program : statements EOF"""
    p[0] = Node("Program")
    p[0].body = p[1]
Пример #11
0
def p_if1(p):
    '''if : IF expr block
    '''
    p[0]=Node('IF')
    p[0].cond = p[2]
    p[0].body = p[3].body
Пример #12
0
def p_elif1(p):
    '''elif : ELIF expr block
    '''
    p[0] =Node('IF')
    p[0].cond = p[2]
    p[0].body = p[3].body
Пример #13
0
def p_program(p):
    '''program : statements EOF
    '''
    p[0]=Node('program')
    p[0].body = p[1].body
Пример #14
0
def p_while(p):
    """while : WHILE LPAREN expr RPAREN block"""
    p[0] = Node("While")
    p[0].cond = p[3]
    p[0].body = p[5]
Пример #15
0
def p_while1(p):
    '''while : WHILE expr block
    '''
    p[0] =Node('WHILE')
    p[0].cond = p[2]
    p[0].body=p[3].body
Пример #16
0
def p_if(p):
    """if : IF expr block"""
    p[0] = Node("If")
    p[0].cond = p[2]
    p[0].body = p[3]
Пример #17
0
def p_statements1(p):
    '''statements : statement
    '''
    p[0]= Node('STATEMENTS')
    p[0].body=[p[1]]