Esempio n. 1
0
def getcuerposubbloque(t):
    g = '<cuerposub> : BEGIN <listasubbloque> END PTCOMA'
    childs = [Nodo('BEGIN', '', [], t.lexer.lineno)]
    if t[2] != None:
        childs.append(Nodo('LISTA', '', t[2], t.lexer.lineno))
    childs.append(Nodo('END', '', [], t.lexer.lineno))
    return Nodo('CUERPO', '', childs, t.lexer.lineno, 0, g)
Esempio n. 2
0
def getcuerpo(t):
    g = '<cuerpo>     : BEGIN <instrlistabloque> END PTCOMA'
    childs = []
    if t[2] != None:
        childs.append(Nodo('LISTA', '', t[2], t.lexer.lineno))
    childs.append(Nodo('END', '', [], t.lexer.lineno))
    return Nodo('BEGIN', '', childs, t.lexer.lineno, 0, g)
Esempio n. 3
0
def getraisenoticesubbloque(t):
    if len(t) == 5:
        return Nodo('RAISE NOTICE', t[3], [], t.lexer.lineno)
    elif len(t) == 7:
        n1 = Nodo('ID', t[5], [], t.lexer.lineno)
        return Nodo('RAISE NOTICE', t[3], [n1], t.lexer.lineno)
    else:
        n1 = Nodo('OUTERBLOCK', t[7], [], t.lexer.lineno)
        return Nodo('RAISE NOTICE', t[3], [n1], t.lexer.lineno)
Esempio n. 4
0
def getasignavalor(t):
    if t[1] == None:
        return None
    elif t[1] == '=':
        g = '<asignavalor>      : DEFAULT <expresion>'
        return Nodo('IGUAL', '=', [t[2]], t.lexer.lineno, 0, g)
    elif t[1] == ':=':
        g = '<asignavalor>      : DEFAULT <expresion>'
        return Nodo('PTIGUAL', ':=', [t[2]], t.lexer.lineno, 0, g)
    else:
        return Nodo('DEFAULT', '', [t[2]], t.lexer.lineno)
Esempio n. 5
0
def getfuncion_procedimiento(t):
    g = '<plsql_instr> : CREATE <procedfunct> ID PARIZQ <parametrosfunc> PARDER <tiporetorno> <cuerpofuncion>'
    g += '\n<procedfunct>  : PROCEDURE'
    childs = []
    if t[5] != None:
        childs.append(Nodo('PARAMETROS', '', t[5], t.lexer.lineno))
    if t[7] != None:
        childs.append(t[7])
    if t[8] != None:
        childs.append(t[8])
    return Nodo(t[2], t[3], childs, t.lexer.lineno, 0, g)
Esempio n. 6
0
def getinstrexecute(t):
    childs = [t[3]]
    if t[5] != None:
        childs.append(t[5])
    if t[6] != None:
        childs.append(t[6])
    return Nodo('EXECUTE', '', childs, t.lexer.lineno)