コード例 #1
0
ファイル: parser.py プロジェクト: islarrab/raplog
def p_input(p):
    'input : SCAN ID'
    var = symtable.get_var(p[2])
    if not var:
      var = symtable.add_var(p[2], str, None)
    codegen.gen_quad(dir.scan, -1, -1, var['dir'])
コード例 #2
0
ファイル: parser.py プロジェクト: islarrab/raplog
def p_assignment_array(p):
    '''assignment : ID EQ array'''
    array = p[3]
    var = symtable.add_var(p[1], int, len(array))
    for i in range(len(array)):
        codegen.gen_quad(dir.asigna, array[i]['dir'], -1, var['dir']+i)
コード例 #3
0
ファイル: parser.py プロジェクト: islarrab/raplog
def p_assignment_array_2(p):
    '''assignment : ID EQ type LBRACK INT RBRACK'''
    var = symtable.add_var(p[1], p[3], p[5])
コード例 #4
0
ファイル: parser.py プロジェクト: islarrab/raplog
def p_assignment_expression(p):
    '''assignment : ID EQ expression'''
    exp_res = codegen.opdos.pop()
    var = symtable.add_var(p[1], exp_res['type'], None)
    codegen.gen_quad(dir.asigna, exp_res['dir'], -1, var['dir'])