Esempio n. 1
0
def p_id_struct_acceso(t):
    'id_struct : IDENTIFICADOR accesos'
    reporte_gramatical.append([
        'id_struct -> IDENTIFICADOR accesos',
        't[0] = Declaracion(TIPO_DATO.ARREGLO,t[1],t[2],None,t.lineno(1),find_column(entrada, t.slice[1]))'
    ])
    t[0] = Declaracion(TIPO_DATO.ARREGLO, t[1], t[2], None, t.lineno(1),
                       find_column(entrada, t.slice[1]))
Esempio n. 2
0
def p_asignacion_dec_accesos_expresion(t):
    'asignacion_dec : IDENTIFICADOR accesos ASIG expresion'
    reporte_gramatical.append([
        'asignacion_dec -> IDENTIFICADOR sig_asig expresion',
        't[0] = Declaracion(TIPO_DATO.ARREGLO,t[1],t[2],t[4],t.lineno(1),find_column(entrada, t.slice[1]))'
    ])
    t[0] = Declaracion(TIPO_DATO.ARREGLO, t[1], t[2], t[4], t.lineno(1),
                       find_column(entrada, t.slice[1]))
Esempio n. 3
0
def p_asignacion_dec_accesos(t):
    'asignacion_dec : IDENTIFICADOR accesos'
    reporte_gramatical.append([
        'asignacion_dec -> IDENTIFICADOR accesos',
        't[0] = Declaracion(TIPO_DATO.DECIMAL,t[1],t[2],None,t.lineno(1),find_column(entrada, t.slice[1]))'
    ])
    t[0] = Declaracion(TIPO_DATO.ARREGLO, t[1], t[2], None, t.lineno(1),
                       find_column(entrada, t.slice[1]))
Esempio n. 4
0
def p_id_struct(t):
    'id_struct : IDENTIFICADOR'
    reporte_gramatical.append([
        'id_struct -> IDENTIFICADOR',
        't[0] = Declaracion(TIPO_DATO.DECIMAL,t[1],None,None,t.lineno(1),find_column(entrada, t.slice[1]))'
    ])
    global temporal_tipo
    temporal_tipo = t[-1] if temporal_tipo == '' else temporal_tipo
    if temporal_tipo == 'int':
        t[0] = Declaracion(TIPO_DATO.ENTERO, t[1], None, None, t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'char':
        t[0] = Declaracion(TIPO_DATO.CARACTER, t[1], None, None, t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'double':
        t[0] = Declaracion(TIPO_DATO.DECIMAL, t[1], None, None, t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'float':
        t[0] = Declaracion(TIPO_DATO.DECIMAL, t[1], None, None, t.lineno(1),
                           find_column(entrada, t.slice[1]))
Esempio n. 5
0
def p_asignacion_dec_expresion(t):
    'asignacion_dec : IDENTIFICADOR ASIG expresion'
    reporte_gramatical.append([
        'asignacion_dec -> IDENTIFICADOR sig_asig expresion',
        't[0] = Declaracion(TIPO_DATO.ENTERO,t[1],None,t[3],t.lineno(1),find_column(entrada, t.slice[1]))'
    ])
    global temporal_tipo
    temporal_tipo = t[-1] if temporal_tipo == '' else temporal_tipo
    if temporal_tipo == 'int':
        t[0] = Declaracion(TIPO_DATO.ENTERO, t[1], None, t[3], t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'char':
        t[0] = Declaracion(TIPO_DATO.CARACTER, t[1], None, t[3], t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'double':
        t[0] = Declaracion(TIPO_DATO.DECIMAL, t[1], None, t[3], t.lineno(1),
                           find_column(entrada, t.slice[1]))
    elif temporal_tipo == 'float':
        t[0] = Declaracion(TIPO_DATO.DECIMAL, t[1], None, t[3], t.lineno(1),
                           find_column(entrada, t.slice[1]))
Esempio n. 6
0
def p_parametro(t):
    'parametro : tipo IDENTIFICADOR'
    reporte_gramatical.append([
        'parametro -> tipo IDENTIFICADOR',
        't[0] = Declaracion(tipo,t[2],None,None,t.lineno(2),find_column(entrada, t.slice[2]))'
    ])
    tipo = ''
    if t[1] == 'int': tipo = TIPO_DATO.ENTERO
    elif t[1] == 'double' or t[1] == 'float': tipo = TIPO_DATO.DECIMAL
    elif t[1] == 'char': tipo = TIPO_DATO.CARACTER
    t[0] = Declaracion(tipo, t[2], None, None, t.lineno(2),
                       find_column(entrada, t.slice[2]), True)