コード例 #1
0
def generar_codigo_3d(entrada):
    ast = parserTo3D(entrada)
    graficador = AST()
    graficador.makeAst(ast.dot())
    #Ejectamos el c3d de cada funcion, procedimiento
    for func in envFunction.functions.values():
        func.generate3d(None, instancia_codigo3d)
    for proc in envProcedure.procedures.values():
        proc.generate3d(None, instancia_codigo3d)

    lErrors = gramaticaFase2.returnLexicalErrors()
    sErrors = gramaticaFase2.returnSyntacticErrors()
    semanticErrors = gramaticaFase2.returnSemanticErrors()
    #Agrega los especiales
    instruction.envVariables.append(indexEnv)
    instruction.envVariables.append(envFunction)
    instruction.envVariables.append(envProcedure)
    symbols = symbolReport()
    obj = {
        "err_lexicos": lErrors,
        "err_sintacticos": sErrors,
        "semantic": semanticErrors,
        "symbols": symbols,
    }
    BnfGrammar.grammarReport2()  # ! DESCOMENTAR EN EL COMMIT FINAL :v
    return obj
コード例 #2
0
def parser(input):
    """
    docstring
    """
    grammar.parse(input)
    lexerErrors = grammar.returnLexicalErrors()
    syntaxErrors = grammar.returnSyntacticErrors()
    obj = {
        "lexical": lexerErrors,
        "syntax": syntaxErrors,
    }
    astReport()
    BnfGrammar.grammarReport()
    return obj
コード例 #3
0
ファイル: interpreter.py プロジェクト: Julio-usac/tytus
def generar_codigo_3d(entrada):
    parserTo3D(entrada)
    lErrors = gramaticaFase2.returnLexicalErrors()
    sErrors = gramaticaFase2.returnSyntacticErrors()
    symbols = symbolReport()
    obj = {
        "err_lexicos": lErrors,
        "err_sintacticos": sErrors,
        #"semantic": semanticErrors,
        "symbols": symbols,
    }
    astReport()
    BnfGrammar.grammarReport2()
    return obj
コード例 #4
0
def execution(input):
    global semanticErrorsL
    """
    docstring
    """
    querys = []
    messages = []
    result = grammar.parse(input)
    lexerErrors = grammar.returnLexicalErrors()
    syntaxErrors = grammar.returnSyntacticErrors()
    if len(lexerErrors) + len(syntaxErrors) == 0 and result:
        for v in result:
            if isinstance(v, Select):
                r = v.execute(None)
                if r:
                    list_ = r[0].values.tolist()
                    labels = r[0].columns.tolist()
                    querys.append([labels, list_])
                    messages.append("Select ejecutado con exito.")
                else:
                    querys.append(None)
                    messages.append("Error: Select.")
                print(r)
            else:
                r = v.execute(None)
                print(r)
                messages.append(r)
    semanticErrors = grammar.returnSemanticErrors()
    if len(semanticErrors) > 0:
        semanticErrorsL.append(semanticErrors)
    PostgresErrors = grammar.returnPostgreSQLErrors()
    symbols = symbolReport()
    obj = {
        "messages": messages,
        "querys": querys,
        "lexical": lexerErrors,
        "syntax": syntaxErrors,
        "semantic": semanticErrorsL,
        "postgres": PostgresErrors,
        "symbols": symbols,
    }
    astReport()
    BnfGrammar.grammarReport()
    return obj
コード例 #5
0
def execution(input):
    """
    docstring
    """
    querys = []
    messages = []
    result = grammar.parse(input)
    with open("obj.pickle", "wb") as f:
        pickle.dump(result, f)
    lexerErrors = grammar.returnLexicalErrors()
    syntaxErrors = grammar.returnSyntacticErrors()
    if len(lexerErrors) + len(syntaxErrors) == 0 and result:
        for v in result:
            if isinstance(v, inst.Select) or isinstance(
                    v, inst.SelectOnlyParams):
                r = v.execute(None)
                if r:
                    list_ = r[0].values.tolist()
                    labels = r[0].columns.tolist()
                    querys.append([labels, list_])
                else:
                    querys.append(None)
            else:
                r = v.execute(None)
                messages.append(r)
    semanticErrors = grammar.returnSemanticErrors()
    PostgresErrors = grammar.returnPostgreSQLErrors()
    symbols = symbolReport()
    obj = {
        "messages": messages,
        "querys": querys,
        "lexical": lexerErrors,
        "syntax": syntaxErrors,
        "semantic": semanticErrors,
        "postgres": PostgresErrors,
        "symbols": symbols,
    }
    astReport()
    BnfGrammar.grammarReport()
    return obj
コード例 #6
0
def getc3d(input):
    """
    docstring
    """
    querys = []
    messages = []
    result = grammar.parse(input)
    lexerErrors = grammar.returnLexicalErrors()
    syntaxErrors = grammar.returnSyntacticErrors()
    tabla = Environment()
    if len(lexerErrors) + len(syntaxErrors) == 0 and result:
        for v in result:
            if isinstance(v, inst.Select) or isinstance(
                    v, inst.SelectOnlyParams):
                r = v.c3d(tabla)
                if r:
                    list_ = r[0].values.tolist()
                    labels = r[0].columns.tolist()
                    querys.append([labels, list_])
                else:
                    querys.append(None)
            else:
                r = v.c3d(tabla)
                messages.append(r)
    semanticErrors = grammar.returnSemanticErrors()
    PostgresErrors = grammar.returnPostgreSQLErrors()
    symbols = symbolReport()
    obj = {
        "messages": messages,
        "querys": querys,
        "lexical": lexerErrors,
        "syntax": syntaxErrors,
        "semantic": semanticErrors,
        "postgres": PostgresErrors,
        "symbols": symbols,
        "codigo": tabla.codigo,
    }
    astReport()
    BnfGrammar.grammarReport()
    return obj