diff --git a/.gitignore b/.gitignore index 6c63318..98d77b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ src/__pycache__/ src/parser.out src/parsetab.py +.vscode diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 04e197e..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "python.formatting.provider": "yapf" -} \ No newline at end of file diff --git a/README.md b/README.md index 1657690..85bc2ce 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,11 @@ -# Compilador na linguagem PHP -Link da documentação : https://www.php.net/manual/pt_BR/language.basic-syntax.comments.php +## Compilador para a linguagem PHP -Link POO Python: https://www.dcc.ufrj.br/~fabiom/mab225/pythonoo.pdf +*** + +## Bibliotecas +1. [PLY (Python Lex-Yacc)](https://www.dabeaz.com/ply/ply.html) + + +## Documentos de apoio +1. [Linguagem sintática](https://www.php.net/manual/pt_BR/language.basic-syntax.comments.php) +2. [OO Python](https://www.dcc.ufrj.br/~fabiom/mab225/pythonoo.pdf) diff --git a/src/ExpressionLanguageParser.py b/src/ExpressionLanguageParser.py index 05b29d3..39473d7 100644 --- a/src/ExpressionLanguageParser.py +++ b/src/ExpressionLanguageParser.py @@ -212,53 +212,61 @@ def p_statement(p): elif isinstance(p[1], sa.ForStatement): p[0] = sa.Statement_For(p[1]) -def p_global_statement(p): - ''' - global_statement : GLOBAL global_var statement_COLON_GLOBAL - | GLOBAL global_var - ''' - if len(p) == 3: - p[0] = sa.GlobalStatement_Single(p[2]) - else: - p[0] = sa.GlobalStatement_Mul(p[2], p[3]) - - + def p_if_statement(p): ''' - if_statement : statement_if if_statement_complement - | statement_if - ''' - if len(p)==3: - p[0] = sa.IfStatement_Complement(p[1],p[2]) - else: - p[0] = sa.IfStatement_Single(p[1]) - + if_statement : statement_if + | statement_if statement_else + | statement_if statement_elseif + | statement_if statement_elseif statement_else + ''' + if len(p)== 2: + p[0] = sa.IfStatement_statement_if(p[1]) + elif len(p) == 3 and isinstance(p[2], sa.StatementElse): + p[0] = sa.IfStatement_statementIf_Else(p[1],p[2]) + elif len(p)== 3 and isinstance(p[2], sa.StatementElseIf): + p[0] = sa.IfStatement_StatementIf_Elseif(p[1],p[2]) + elif len(p)== 4: + p[0] = sa.IfStatement_StmIf_Elseif_Else(p[1],p[2],p[3]) + def p_statement_if(p): ''' - statement_if : IF expr_parentheses statement_BLOCK_OPT + statement_if : IF expr_parentheses statement_BLOCK_OPT statement_if + | IF expr_parentheses statement_BLOCK_OPT ''' - if len(p) ==4: - p[0] = sa.StatementIf_ExprParen(p[2],p[3]) + if len(p) ==5: + p[0] = sa.StatementIf_Mul(p[2],p[3],p[4]) + elif len(p) ==4: + p[0] = sa.StatementIf_Single(p[2],p[3]) -def p_if_statement_complement(p): +def p_statement_elseif(p): ''' - if_statement_complement : statement_elseif - | statement_else + statement_elseif : ELSEIF expr_parentheses statement_BLOCK_OPT statement_elseif + | ELSEIF expr_parentheses statement_BLOCK_OPT + | ''' - p[0] = sa.IfStatement_Else(p[1]) + if len(p) == 5: + p[0] = sa.StatementElseIf_Mul(p[2],p[3],p[4]) + elif len(p) == 4: + p[0] = sa.StatementElseIf_Single(p[2],p[3]) def p_statement_else(p): ''' statement_else : ELSE statement_BLOCK_OPT ''' - if len(p)==3: - p[0] = sa.StatementElse_Else(p[2]) - + if len(p) == 3: + p[0] = sa.StatementElse_Single(p[2]) -def p_statement_elseif(p): +def p_global_statement(p): ''' - statement_elseif : ELSEIF expr_parentheses statement_BLOCK_OPT + global_statement : GLOBAL global_var statement_COLON_GLOBAL + | GLOBAL global_var ''' + if len(p) == 3: + p[0] = sa.GlobalStatement_Single(p[2]) + else: + p[0] = sa.GlobalStatement_Mul(p[2], p[3]) + def p_while_statement(p): ''' @@ -359,7 +367,7 @@ def p_statement_COLON_GLOBAL(p): if len(p) == 3: p[0] = sa.GlobalVarMul_Single(p[2]) else: - p[0] = sa.GloballVarMul_Mul(p[2], p[3]) + p[0] = sa.GlobalVarMul_Mul(p[2], p[3]) def p_ampersand_variable(p): ''' diff --git a/src/SemanticVisitor.py b/src/SemanticVisitor.py index a3b915e..658b845 100644 --- a/src/SemanticVisitor.py +++ b/src/SemanticVisitor.py @@ -4,15 +4,20 @@ import SintaxeAbstrata as sa -def coercion(type1, type2): - if (type1 in st.Number and type2 in st.Number): - if (type1 == st.FLOAT or type2 == st.FLOAT): - return st.FLOAT - else: - return st.INT - else: - return None +def isValidNumber(number): + try: + if(number in st.Number and int(number) or float(number) ): + return True + except ValueError: + return False + +def coercion(type1, type2): + if (type1 in st.Number and type2 in st.Number): + if (type1 == st.FLOAT or type2 == st.FLOAT): + return st.FLOAT + return st.INT + return None class SemanticVisitor(AbstractVisitor): diff --git a/src/SintaxeAbstrata.py b/src/SintaxeAbstrata.py index e810646..3fc6906 100644 --- a/src/SintaxeAbstrata.py +++ b/src/SintaxeAbstrata.py @@ -201,65 +201,103 @@ def __init__(self, expr): def accept(self, Visitor): return Visitor.visitExprParentheses_Expr(self) - -class Else(metaclass = ABCMeta): +class IfStatement(metaclass = ABCMeta): @abstractmethod - def accept(self,Visitor): + def accept(self, Visitor): pass -class IfStatementComplement(metaclass = ABCMeta): - @abstractmethod - def accept(self,Visitor): - pass +class IfStatement_statement_if(IfStatement): + def __init__(self, statement_if): + self.statement_if = statement_if + def accept(self, Visitor): + Visitor.visitIfStatement_statement_if(self) -class IfStatement_Else(IfStatementComplement): - def __init__(self, statement_else): - self.statement_else = statement_else +class IfStatement_statementIf_Else(IfStatement): + def __init__(self, statement_if, statement_else): + self.statement_if = statement_if + self.statement_else = statement_else def accept(self, Visitor): return Visitor.visitIfStatemnet_Else(self) -class StatementElse(metaclass = ABCMeta): - @abstractmethod + +class IfStatement_StatementIf_Elseif(IfStatement): + def __init__ (self,statement_if, statement_elseif): + self.statement_if = statement_if + self.statement_elseif = statement_elseif def accept(self, Visitor): - pass + Visitor.visitIfStatement_StatementIf_Elseif(self) + +class IfStatement_StmIf_Elseif_Else(IfStatement): + def __init__(self,statement_if,statement_elseif,statement_else): + self.statement_if = statement_if + self.statement_elseif = statement_elseif + self.statement_else = statement_else -class StatementElse_Else(StatementElse): - def __init__(self, statementBlockOpt): - self.statementBlockOpt = statementBlockOpt def accept(self, Visitor): return Visitor.visitStatementElse_Else(self) class IfStatement(metaclass=ABCMeta): - @abstractmethod - def accept(self, Visitor): - pass + @abstractmethod + def accept(self, Visitor): + Visitor.visitIfStatement_Stm_If_Elseif_Else(self) -class IfStatement_Complement(IfStatement): - def __init__(self,statement_if,if_statement_complement): +class StatementIf_Mul(IfStatement): + def __init__(self, expr_parentheses,statement_BLOCK_OPT,statement_if): + self.expr_parentheses = expr_parentheses + self.statement_BLOCK_OPT=statement_BLOCK_OPT self.statement_if = statement_if - self.if_statement_complement = if_statement_complement + def accept(self,Visitor): return Visitor.visitIfStatement_Complement(self) -class IfStatement_Single(IfStatement): - def __init__(self, statementIf): - self.statementIf = statementIf +class StatementIf_Single(IfStatement): + def __init__(self, expr_parentheses,statement_BLOCK_OPT): + self.expr_parentheses = expr_parentheses + self.statement_BLOCK_OPT=statement_BLOCK_OPT + def accept(self,Visitor): + Visitor.visitStatementIf_Single(self) + +class ElseIf_ifStatement(metaclass = ABCMeta): + @abstractmethod def accept(self, Visitor): return Visitor.visitIfStatement_Single(self) -class StatementIf(metaclass=ABCMeta): +class StatementElseIf(metaclass = ABCMeta): @abstractmethod def accept(self, Visitor): pass -class StatementIf_ExprParen(StatementIf): +class StatementElseIf_Mul(StatementElseIf): + def __init__(self, expr_parentheses,statement_BLOCK_OPT, statement_elseif): + self.expr_parentheses = expr_parentheses + self.statement_BLOCK_OPT = statement_BLOCK_OPT + self.statement_elseif = statement_elseif + def accept(self, Visitor): + Visitor.visitStatementElseIf_Mul(self) + +class StatementElseIf_Single(StatementElseIf): def __init__(self, expr_parentheses,statement_BLOCK_OPT): - self.expr_parentheses = expr_parentheses - self.statement_BLOCK_OPT=statement_BLOCK_OPT + self.expr_parentheses = expr_parentheses + self.statement_BLOCK_OPT = statement_BLOCK_OPT + + def accept(self, Visitor): + Visitor.visitStatementElseIf_Single(self) + + +class StatementElse(metaclass = ABCMeta): + @abstractmethod + def accept(self, Visitor): + pass + +class StatementElse_Single(StatementElse): + def __init__(self, statement_BLOCK_OPT): + self.statement_BLOCK_OPT = statement_BLOCK_OPT + def accept(self,Visitor): return Visitor.visitStatementIf_ExprParen(self) + class funcDecStatement_Function(FuncDecStatement): def __init__(self, fds_id, fds_parameter, fds_statements): self.fds_id = fds_id diff --git a/src/Visitor.py b/src/Visitor.py index 1b9458a..bd59ab1 100644 --- a/src/Visitor.py +++ b/src/Visitor.py @@ -164,16 +164,6 @@ def visitStatement_Return(self, statement): pp.printTab() statement._return.accept(self) - def visitStatement_If(self, statement): - pp.printTab() - statement._if.accept(self) - - def visitStatementElse_Else(self, statementElse): - pp.printTab() - print('else',end='') - statementElse.statementBlockOpt.accept(self) - - def visitStatement_Exit(self, statement): pp.printTab() statement.exit.accept(self) @@ -206,25 +196,68 @@ def visitStatement_For(self, statement): pp.printTab() statement._for.accept(self) - def visitIfStatement_Single(self, ifStatement): - ifStatement.statementIf.accept(self) + def visitStatement_If(self, statement): + statement._if.accept(self) - def visitIfStatement_Complement(self, ifStatement): - ifStatement.statement_if.accept(self) - ifStatement.if_statement_complement.accept(self) + def visitIfStatement_statement_if(self, IfStatement): + IfStatement.statement_if.accept(self) + + def vistIfStatement_statementIf_Else(self, statementIfElse): + statementIfElse.statement_if.accept(self) + statementIfElse.statement_else.accept(self) - def visitStatementIf_ExprParen(self, statement_if): + def visitIfStatement_StatementIf_Elseif(self, statementIfElseif): + statementIfElseif.statement_if.accept(self) + statementIfElseif.statement_elseif.accept(self) + + def visitIfStatement_Stm_If_Elseif_Else(self, statementIfElseifElse): + statementIfElseifElse.statement_if.accept(self) + statementIfElseifElse.statement_elseif.accept(self) + statementIfElseifElse.statement_else.accept(self) + + def visitStatementIf_Mul(self, statementIfMul): + pp.printTab() print('if',end='') - statement_if.expr_parentheses.accept(self) - statement_if.statement_BLOCK_OPT.accept(self) + statementIfMul.expr_parentheses.accept(self) + statementIfMul.statement_BLOCK_OPT.accept(self) + statementIfMul.statement_if.accept(self) + + def visitStatementIf_Single(self, statementIfSingle): + pp.printTab() + print('if',end='') + statementIfSingle.expr_parentheses.accept(self) + statementIfSingle.statement_BLOCK_OPT.accept(self) + + def visitStatementElseIf_Mul(self, statementElseIfMul): + pp.printTab() + print('elseif',end='') + statementElseIfMul.expr_parentheses.accept(self) + statementElseIfMul.statement_BLOCK_OPT.accept(self) + statementElseIfMul.statement_elseif.accept(self) + + def visitStatementElseIf_Single(self, statementElseIfSingle): + pp.printTab() + print('elseif',end='') + statementElseIfSingle.expr_parentheses.accept(self) + statementElseIfSingle.statement_BLOCK_OPT.accept(self) + + + def visitStatementElse_Single(self, statementElse): + pp.printTab() + print('else',end='') + statementElse.statement_BLOCK_OPT.accept(self) def visitExprParentheses_Expr(self, exprParentheses_Expr): print('(',end='') exprParentheses_Expr.expr.accept(self) print(')',end='') - def visitIfStatemnet_Else(self, ifStatementElse): + def visitIfStatement_Else(self, ifStatementElse): ifStatementElse.statement_else.accept(self) + + def visitIfStatement_ElseIf(self, ifStatementElseif): + ifStatementElseif.statement_elseif.accept(self) + def visitExpr_Minus_Expr1(self, expr): print('-', end='') diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/.classpath" "b/utility/An\303\241lise l\303\251xica - JAVA/.classpath" deleted file mode 100644 index c0f260f..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/.classpath" +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/.project" "b/utility/An\303\241lise l\303\251xica - JAVA/.project" deleted file mode 100644 index 3055f5d..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/.project" +++ /dev/null @@ -1,17 +0,0 @@ - - - AnaliseLexica - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/.settings/org.eclipse.jdt.core.prefs" "b/utility/An\303\241lise l\303\251xica - JAVA/.settings/org.eclipse.jdt.core.prefs" deleted file mode 100644 index 71f736f..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/.settings/org.eclipse.jdt.core.prefs" +++ /dev/null @@ -1,14 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=12 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning -org.eclipse.jdt.core.compiler.release=enabled -org.eclipse.jdt.core.compiler.source=12 diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Arquivos.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Arquivos.class" deleted file mode 100644 index acf9a81..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Arquivos.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Buffer.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Buffer.class" deleted file mode 100644 index c9cebc9..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Buffer.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Lexer.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Lexer.class" deleted file mode 100644 index 8781be8..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Lexer.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Main.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Main.class" deleted file mode 100644 index 3d5c848..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Main.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Simbolo.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Simbolo.class" deleted file mode 100644 index 081add9..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Simbolo.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Token.class" "b/utility/An\303\241lise l\303\251xica - JAVA/bin/Token.class" deleted file mode 100644 index cfef1ce..0000000 Binary files "a/utility/An\303\241lise l\303\251xica - JAVA/bin/Token.class" and /dev/null differ diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/hs_err_pid9992.log" "b/utility/An\303\241lise l\303\251xica - JAVA/hs_err_pid9992.log" deleted file mode 100644 index b624646..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/hs_err_pid9992.log" +++ /dev/null @@ -1,497 +0,0 @@ -# -# A fatal error has been detected by the Java Runtime Environment: -# -# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd3567cddc, pid=9992, tid=7348 -# -# JRE version: Java(TM) SE Runtime Environment (12.0.1+12) (build 12.0.1+12) -# Java VM: Java HotSpot(TM) 64-Bit Server VM (12.0.1+12, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) -# Problematic frame: -# V [jvm.dll+0x34cddc] -# -# No core dump will be written. Minidumps are not enabled by default on client versions of Windows -# -# If you would like to submit a bug report, please visit: -# http://bugreport.java.com/bugreport/crash.jsp -# - ---------------- S U M M A R Y ------------ - -Command Line: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:54478 -javaagent:C:\Users\Luiz Carlos Moitinho\eclipse\java-2019-06\eclipse\configuration\org.eclipse.osgi\226\0\.cp\lib\javaagent-shaded.jar -Dfile.encoding=Cp1252 Main - -Host: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz, 8 cores, 7G, Windows 10 , 64 bit Build 17763 (10.0.17763.475) -Time: Tue Oct 29 22:01:03 2019 Hora Padrão de Buenos Aires elapsed time: 320 seconds (0d 0h 5m 20s) - ---------------- T H R E A D --------------- - -Current thread (0x000001df36c63800): VMThread "VM Thread" [stack: 0x0000002ae3d00000,0x0000002ae3e00000] [id=7348] - -Stack: [0x0000002ae3d00000,0x0000002ae3e00000], sp=0x0000002ae3dff070, free space=1020k -Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) -V [jvm.dll+0x34cddc] -V [jvm.dll+0x34f2a1] -V [jvm.dll+0x34fb6e] -V [jvm.dll+0x34d07c] -V [jvm.dll+0x34c2b2] -V [jvm.dll+0x628425] -V [jvm.dll+0x6281ad] -V [jvm.dll+0x5ef77a] -V [jvm.dll+0x504387] -V [jvm.dll+0x78dccc] -V [jvm.dll+0x791b27] -V [jvm.dll+0x792366] -V [jvm.dll+0x792697] -V [jvm.dll+0x748648] -V [jvm.dll+0x638566] -C [ucrtbase.dll+0x21ffa] -C [KERNEL32.DLL+0x17974] -C [ntdll.dll+0x6a271] - - -siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000006 - - -Register to memory mapping: - -RIP=0x00007ffd3567cddc jvm.dll -RAX=0x0 is NULL -RBX=0x0000002ae3dff2f0 points into unknown readable memory: 58 b4 c0 35 fd 7f 00 00 -RCX=0x0 is NULL -RDX=0x0 is NULL -RSP=0x0000002ae3dff070 points into unknown readable memory: c5 b6 11 37 df 01 00 00 -RBP=0x0 is NULL -RSI=0x0000000000000001 is an unknown value -RDI=0x00007ffd35dc3bd8 jvm.dll -R8 =0x0 is NULL -R9 =0x000001df3711c9b8 is pointing into metadata -R10=0x00007ffd35330000 jvm.dll -R11=0x000001df37708a00 points into unknown readable memory: 00 00 00 47 ff ff ff 8f -R12=0x000001df377089b0 points into unknown readable memory: 00 00 00 00 4b 03 00 00 -R13=0x00000000000009b0 is an unknown value -R14=0x000001df3711b9f9 is pointing into metadata -R15=0x000000000000035a is an unknown value - - -Registers: -RAX=0x0000000000000000, RBX=0x0000002ae3dff2f0, RCX=0x0000000000000000, RDX=0x0000000000000000 -RSP=0x0000002ae3dff070, RBP=0x0000000000000000, RSI=0x0000000000000001, RDI=0x00007ffd35dc3bd8 -R8 =0x0000000000000000, R9 =0x000001df3711c9b8, R10=0x00007ffd35330000, R11=0x000001df37708a00 -R12=0x000001df377089b0, R13=0x00000000000009b0, R14=0x000001df3711b9f9, R15=0x000000000000035a -RIP=0x00007ffd3567cddc, EFLAGS=0x0000000000010206 - -Top of Stack: (sp=0x0000002ae3dff070) -0x0000002ae3dff070: 000001df3711b6c5 00007ffd3545aa9e -0x0000002ae3dff080: 000001df377089d8 0000000000000363 -0x0000002ae3dff090: 000000004fffffff 00007ffd35681307 -0x0000002ae3dff0a0: 000000004600034e 00007ffd35680a9e -0x0000002ae3dff0b0: 00006db8a3748a9b 00007ffd35680a90 -0x0000002ae3dff0c0: 000001df3711b9f9 0000002ae3dff150 -0x0000002ae3dff0d0: 0000002ae3dff2f0 00007ffd3567f2a1 -0x0000002ae3dff0e0: 000001df3711b9f5 0000000000000351 -0x0000002ae3dff0f0: 0000002ae3dff180 00007ffd35454ebe -0x0000002ae3dff100: 0000002a00000351 0000002ae3dff180 -0x0000002ae3dff110: 000000000000035a 00000000000000b4 -0x0000002ae3dff120: 00000000000000b4 00007ffd3567fb6e -0x0000002ae3dff130: 0000002ae3dff2f0 0000002ae3dff180 -0x0000002ae3dff140: 000001df3711b9f9 6666666666666667 -0x0000002ae3dff150: 000001df3711bae8 000001df36c63800 -0x0000002ae3dff160: 0000035400000351 000000b40000035a - -Instructions: (pc=0x00007ffd3567cddc) -0x00007ffd3567cdbc: 8b cf e8 5d e1 f0 ff 8b d0 48 8b cf e8 83 11 f1 -0x00007ffd3567cdcc: ff 48 63 c8 48 8b 44 cf 40 48 8d 3d fc 6d 74 00 -0x00007ffd3567cddc: 0f b6 48 06 8b 05 ee 6d 74 00 80 f9 4c 74 2b 80 -0x00007ffd3567cdec: f9 5b 74 26 80 f9 4a 74 18 80 f9 44 74 13 80 f9 - - -Stack slot to memory mapping: -stack at sp + 0 slots: 0x000001df3711b6c5 is pointing into metadata -stack at sp + 1 slots: 0x00007ffd3545aa9e jvm.dll -stack at sp + 2 slots: 0x000001df377089d8 points into unknown readable memory: 00 00 00 00 5a 03 00 00 -stack at sp + 3 slots: 0x0000000000000363 is an unknown value -stack at sp + 4 slots: 0x000000004fffffff is an unknown value -stack at sp + 5 slots: 0x00007ffd35681307 jvm.dll -stack at sp + 6 slots: 0x000000004600034e is an unknown value -stack at sp + 7 slots: 0x00007ffd35680a9e jvm.dll - -VM_Operation (0x0000002ae46ff270): GetOrSetLocal, mode: safepoint, requested by thread 0x000001df377e3800 - - ---------------- P R O C E S S --------------- - -Threads class SMR info: -_java_thread_list=0x000001df3785c9f0, length=13, elements={ -0x000001df15fd9000, 0x000001df36c65000, 0x000001df36c66800, 0x000001df36c7f000, -0x000001df36c82800, 0x000001df36c8d800, 0x000001df36c94000, 0x000001df36ca0800, -0x000001df36c4c000, 0x000001df377e3800, 0x000001df377eb000, 0x000001df37819000, -0x000001df378c1000 -} - -Java Threads: ( => current thread ) - 0x000001df15fd9000 JavaThread "main" [_thread_blocked, id=18332, stack(0x0000002ae3700000,0x0000002ae3800000)] - 0x000001df36c65000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13460, stack(0x0000002ae3e00000,0x0000002ae3f00000)] - 0x000001df36c66800 JavaThread "Finalizer" daemon [_thread_blocked, id=456, stack(0x0000002ae3f00000,0x0000002ae4000000)] - 0x000001df36c7f000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1376, stack(0x0000002ae4000000,0x0000002ae4100000)] - 0x000001df36c82800 JavaThread "Attach Listener" daemon [_thread_blocked, id=1116, stack(0x0000002ae4100000,0x0000002ae4200000)] - 0x000001df36c8d800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=5136, stack(0x0000002ae4200000,0x0000002ae4300000)] - 0x000001df36c94000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=10104, stack(0x0000002ae4300000,0x0000002ae4400000)] - 0x000001df36ca0800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=9696, stack(0x0000002ae4400000,0x0000002ae4500000)] - 0x000001df36c4c000 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=13764, stack(0x0000002ae4500000,0x0000002ae4600000)] - 0x000001df377e3800 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=15680, stack(0x0000002ae4600000,0x0000002ae4700000)] _threads_hazard_ptr=0x000001df3785c9f0 - 0x000001df377eb000 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=15392, stack(0x0000002ae4700000,0x0000002ae4800000)] - 0x000001df37819000 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=5160, stack(0x0000002ae4800000,0x0000002ae4900000)] - 0x000001df378c1000 JavaThread "Service Thread" daemon [_thread_blocked, id=2484, stack(0x0000002ae4900000,0x0000002ae4a00000)] - -Other Threads: -=>0x000001df36c63800 VMThread "VM Thread" [stack: 0x0000002ae3d00000,0x0000002ae3e00000] [id=7348] - 0x000001df378d1800 WatcherThread [stack: 0x0000002ae4a00000,0x0000002ae4b00000] [id=15264] - 0x000001df16016800 GCTaskThread "GC Thread#0" [stack: 0x0000002ae3800000,0x0000002ae3900000] [id=14112] - 0x000001df16026800 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000002ae3900000,0x0000002ae3a00000] [id=14184] - 0x000001df16028000 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000002ae3a00000,0x0000002ae3b00000] [id=16480] - 0x000001df36ae0800 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000002ae3b00000,0x0000002ae3c00000] [id=7520] - 0x000001df36ae1800 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x0000002ae3c00000,0x0000002ae3d00000] [id=11720] - -Threads with active compile tasks: - -VM state:at safepoint (normal execution) - -VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) -[0x000001df15fd4400] Threads_lock - owner thread: 0x000001df36c63800 - -Heap address: 0x0000000081600000, size: 2026 MB, Compressed Oops mode: 32-bit -Narrow klass base: 0x0000000800000000, Narrow klass shift: 3 -Compressed class space size: 1073741824 Address: 0x00000008011a0000 - -Heap: - garbage-first heap total 131072K, used 3072K [0x0000000081600000, 0x0000000100000000) - region size 1024K, 5 young (5120K), 0 survivors (0K) - Metaspace used 2688K, capacity 4973K, committed 5120K, reserved 1056768K - class space used 247K, capacity 443K, committed 512K, reserved 1048576K -Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TAMS=top-at-mark-start (previous, next) -| 0|0x0000000081600000, 0x0000000081600000, 0x0000000081700000| 0%| F| |TAMS 0x0000000081600000, 0x0000000081600000| Untracked -| 1|0x0000000081700000, 0x0000000081700000, 0x0000000081800000| 0%| F| |TAMS 0x0000000081700000, 0x0000000081700000| Untracked -| 2|0x0000000081800000, 0x0000000081800000, 0x0000000081900000| 0%| F| |TAMS 0x0000000081800000, 0x0000000081800000| Untracked -| 3|0x0000000081900000, 0x0000000081900000, 0x0000000081a00000| 0%| F| |TAMS 0x0000000081900000, 0x0000000081900000| Untracked -| 4|0x0000000081a00000, 0x0000000081a00000, 0x0000000081b00000| 0%| F| |TAMS 0x0000000081a00000, 0x0000000081a00000| Untracked -| 5|0x0000000081b00000, 0x0000000081b00000, 0x0000000081c00000| 0%| F| |TAMS 0x0000000081b00000, 0x0000000081b00000| Untracked -| 6|0x0000000081c00000, 0x0000000081c00000, 0x0000000081d00000| 0%| F| |TAMS 0x0000000081c00000, 0x0000000081c00000| Untracked -| 7|0x0000000081d00000, 0x0000000081d00000, 0x0000000081e00000| 0%| F| |TAMS 0x0000000081d00000, 0x0000000081d00000| Untracked -| 8|0x0000000081e00000, 0x0000000081e00000, 0x0000000081f00000| 0%| F| |TAMS 0x0000000081e00000, 0x0000000081e00000| Untracked -| 9|0x0000000081f00000, 0x0000000081f00000, 0x0000000082000000| 0%| F| |TAMS 0x0000000081f00000, 0x0000000081f00000| Untracked -| 10|0x0000000082000000, 0x0000000082000000, 0x0000000082100000| 0%| F| |TAMS 0x0000000082000000, 0x0000000082000000| Untracked -| 11|0x0000000082100000, 0x0000000082100000, 0x0000000082200000| 0%| F| |TAMS 0x0000000082100000, 0x0000000082100000| Untracked -| 12|0x0000000082200000, 0x0000000082200000, 0x0000000082300000| 0%| F| |TAMS 0x0000000082200000, 0x0000000082200000| Untracked -| 13|0x0000000082300000, 0x0000000082300000, 0x0000000082400000| 0%| F| |TAMS 0x0000000082300000, 0x0000000082300000| Untracked -| 14|0x0000000082400000, 0x0000000082400000, 0x0000000082500000| 0%| F| |TAMS 0x0000000082400000, 0x0000000082400000| Untracked -| 15|0x0000000082500000, 0x0000000082500000, 0x0000000082600000| 0%| F| |TAMS 0x0000000082500000, 0x0000000082500000| Untracked -| 16|0x0000000082600000, 0x0000000082600000, 0x0000000082700000| 0%| F| |TAMS 0x0000000082600000, 0x0000000082600000| Untracked -| 17|0x0000000082700000, 0x0000000082700000, 0x0000000082800000| 0%| F| |TAMS 0x0000000082700000, 0x0000000082700000| Untracked -| 18|0x0000000082800000, 0x0000000082800000, 0x0000000082900000| 0%| F| |TAMS 0x0000000082800000, 0x0000000082800000| Untracked -| 19|0x0000000082900000, 0x0000000082900000, 0x0000000082a00000| 0%| F| |TAMS 0x0000000082900000, 0x0000000082900000| Untracked -| 20|0x0000000082a00000, 0x0000000082a00000, 0x0000000082b00000| 0%| F| |TAMS 0x0000000082a00000, 0x0000000082a00000| Untracked -| 21|0x0000000082b00000, 0x0000000082b00000, 0x0000000082c00000| 0%| F| |TAMS 0x0000000082b00000, 0x0000000082b00000| Untracked -| 22|0x0000000082c00000, 0x0000000082c00000, 0x0000000082d00000| 0%| F| |TAMS 0x0000000082c00000, 0x0000000082c00000| Untracked -| 23|0x0000000082d00000, 0x0000000082d00000, 0x0000000082e00000| 0%| F| |TAMS 0x0000000082d00000, 0x0000000082d00000| Untracked -| 24|0x0000000082e00000, 0x0000000082e00000, 0x0000000082f00000| 0%| F| |TAMS 0x0000000082e00000, 0x0000000082e00000| Untracked -| 25|0x0000000082f00000, 0x0000000082f00000, 0x0000000083000000| 0%| F| |TAMS 0x0000000082f00000, 0x0000000082f00000| Untracked -| 26|0x0000000083000000, 0x0000000083000000, 0x0000000083100000| 0%| F| |TAMS 0x0000000083000000, 0x0000000083000000| Untracked -| 27|0x0000000083100000, 0x0000000083100000, 0x0000000083200000| 0%| F| |TAMS 0x0000000083100000, 0x0000000083100000| Untracked -| 28|0x0000000083200000, 0x0000000083200000, 0x0000000083300000| 0%| F| |TAMS 0x0000000083200000, 0x0000000083200000| Untracked -| 29|0x0000000083300000, 0x0000000083300000, 0x0000000083400000| 0%| F| |TAMS 0x0000000083300000, 0x0000000083300000| Untracked -| 30|0x0000000083400000, 0x0000000083400000, 0x0000000083500000| 0%| F| |TAMS 0x0000000083400000, 0x0000000083400000| Untracked -| 31|0x0000000083500000, 0x0000000083500000, 0x0000000083600000| 0%| F| |TAMS 0x0000000083500000, 0x0000000083500000| Untracked -| 32|0x0000000083600000, 0x0000000083600000, 0x0000000083700000| 0%| F| |TAMS 0x0000000083600000, 0x0000000083600000| Untracked -| 33|0x0000000083700000, 0x0000000083700000, 0x0000000083800000| 0%| F| |TAMS 0x0000000083700000, 0x0000000083700000| Untracked -| 34|0x0000000083800000, 0x0000000083800000, 0x0000000083900000| 0%| F| |TAMS 0x0000000083800000, 0x0000000083800000| Untracked -| 35|0x0000000083900000, 0x0000000083900000, 0x0000000083a00000| 0%| F| |TAMS 0x0000000083900000, 0x0000000083900000| Untracked -| 36|0x0000000083a00000, 0x0000000083a00000, 0x0000000083b00000| 0%| F| |TAMS 0x0000000083a00000, 0x0000000083a00000| Untracked -| 37|0x0000000083b00000, 0x0000000083b00000, 0x0000000083c00000| 0%| F| |TAMS 0x0000000083b00000, 0x0000000083b00000| Untracked -| 38|0x0000000083c00000, 0x0000000083c00000, 0x0000000083d00000| 0%| F| |TAMS 0x0000000083c00000, 0x0000000083c00000| Untracked -| 39|0x0000000083d00000, 0x0000000083d00000, 0x0000000083e00000| 0%| F| |TAMS 0x0000000083d00000, 0x0000000083d00000| Untracked -| 40|0x0000000083e00000, 0x0000000083e00000, 0x0000000083f00000| 0%| F| |TAMS 0x0000000083e00000, 0x0000000083e00000| Untracked -| 41|0x0000000083f00000, 0x0000000083f00000, 0x0000000084000000| 0%| F| |TAMS 0x0000000083f00000, 0x0000000083f00000| Untracked -| 42|0x0000000084000000, 0x0000000084000000, 0x0000000084100000| 0%| F| |TAMS 0x0000000084000000, 0x0000000084000000| Untracked -| 43|0x0000000084100000, 0x0000000084100000, 0x0000000084200000| 0%| F| |TAMS 0x0000000084100000, 0x0000000084100000| Untracked -| 44|0x0000000084200000, 0x0000000084200000, 0x0000000084300000| 0%| F| |TAMS 0x0000000084200000, 0x0000000084200000| Untracked -| 45|0x0000000084300000, 0x0000000084300000, 0x0000000084400000| 0%| F| |TAMS 0x0000000084300000, 0x0000000084300000| Untracked -| 46|0x0000000084400000, 0x0000000084400000, 0x0000000084500000| 0%| F| |TAMS 0x0000000084400000, 0x0000000084400000| Untracked -| 47|0x0000000084500000, 0x0000000084500000, 0x0000000084600000| 0%| F| |TAMS 0x0000000084500000, 0x0000000084500000| Untracked -| 48|0x0000000084600000, 0x0000000084600000, 0x0000000084700000| 0%| F| |TAMS 0x0000000084600000, 0x0000000084600000| Untracked -| 49|0x0000000084700000, 0x0000000084700000, 0x0000000084800000| 0%| F| |TAMS 0x0000000084700000, 0x0000000084700000| Untracked -| 50|0x0000000084800000, 0x0000000084800000, 0x0000000084900000| 0%| F| |TAMS 0x0000000084800000, 0x0000000084800000| Untracked -| 51|0x0000000084900000, 0x0000000084900000, 0x0000000084a00000| 0%| F| |TAMS 0x0000000084900000, 0x0000000084900000| Untracked -| 52|0x0000000084a00000, 0x0000000084a00000, 0x0000000084b00000| 0%| F| |TAMS 0x0000000084a00000, 0x0000000084a00000| Untracked -| 53|0x0000000084b00000, 0x0000000084b00000, 0x0000000084c00000| 0%| F| |TAMS 0x0000000084b00000, 0x0000000084b00000| Untracked -| 54|0x0000000084c00000, 0x0000000084c00000, 0x0000000084d00000| 0%| F| |TAMS 0x0000000084c00000, 0x0000000084c00000| Untracked -| 55|0x0000000084d00000, 0x0000000084d00000, 0x0000000084e00000| 0%| F| |TAMS 0x0000000084d00000, 0x0000000084d00000| Untracked -| 56|0x0000000084e00000, 0x0000000084e00000, 0x0000000084f00000| 0%| F| |TAMS 0x0000000084e00000, 0x0000000084e00000| Untracked -| 57|0x0000000084f00000, 0x0000000084f00000, 0x0000000085000000| 0%| F| |TAMS 0x0000000084f00000, 0x0000000084f00000| Untracked -| 58|0x0000000085000000, 0x0000000085000000, 0x0000000085100000| 0%| F| |TAMS 0x0000000085000000, 0x0000000085000000| Untracked -| 59|0x0000000085100000, 0x0000000085100000, 0x0000000085200000| 0%| F| |TAMS 0x0000000085100000, 0x0000000085100000| Untracked -| 60|0x0000000085200000, 0x0000000085200000, 0x0000000085300000| 0%| F| |TAMS 0x0000000085200000, 0x0000000085200000| Untracked -| 61|0x0000000085300000, 0x0000000085300000, 0x0000000085400000| 0%| F| |TAMS 0x0000000085300000, 0x0000000085300000| Untracked -| 62|0x0000000085400000, 0x0000000085400000, 0x0000000085500000| 0%| F| |TAMS 0x0000000085400000, 0x0000000085400000| Untracked -| 63|0x0000000085500000, 0x0000000085500000, 0x0000000085600000| 0%| F| |TAMS 0x0000000085500000, 0x0000000085500000| Untracked -| 64|0x0000000085600000, 0x0000000085600000, 0x0000000085700000| 0%| F| |TAMS 0x0000000085600000, 0x0000000085600000| Untracked -| 65|0x0000000085700000, 0x0000000085700000, 0x0000000085800000| 0%| F| |TAMS 0x0000000085700000, 0x0000000085700000| Untracked -| 66|0x0000000085800000, 0x0000000085800000, 0x0000000085900000| 0%| F| |TAMS 0x0000000085800000, 0x0000000085800000| Untracked -| 67|0x0000000085900000, 0x0000000085900000, 0x0000000085a00000| 0%| F| |TAMS 0x0000000085900000, 0x0000000085900000| Untracked -| 68|0x0000000085a00000, 0x0000000085a00000, 0x0000000085b00000| 0%| F| |TAMS 0x0000000085a00000, 0x0000000085a00000| Untracked -| 69|0x0000000085b00000, 0x0000000085b00000, 0x0000000085c00000| 0%| F| |TAMS 0x0000000085b00000, 0x0000000085b00000| Untracked -| 70|0x0000000085c00000, 0x0000000085c00000, 0x0000000085d00000| 0%| F| |TAMS 0x0000000085c00000, 0x0000000085c00000| Untracked -| 71|0x0000000085d00000, 0x0000000085d00000, 0x0000000085e00000| 0%| F| |TAMS 0x0000000085d00000, 0x0000000085d00000| Untracked -| 72|0x0000000085e00000, 0x0000000085e00000, 0x0000000085f00000| 0%| F| |TAMS 0x0000000085e00000, 0x0000000085e00000| Untracked -| 73|0x0000000085f00000, 0x0000000085f00000, 0x0000000086000000| 0%| F| |TAMS 0x0000000085f00000, 0x0000000085f00000| Untracked -| 74|0x0000000086000000, 0x0000000086000000, 0x0000000086100000| 0%| F| |TAMS 0x0000000086000000, 0x0000000086000000| Untracked -| 75|0x0000000086100000, 0x0000000086100000, 0x0000000086200000| 0%| F| |TAMS 0x0000000086100000, 0x0000000086100000| Untracked -| 76|0x0000000086200000, 0x0000000086200000, 0x0000000086300000| 0%| F| |TAMS 0x0000000086200000, 0x0000000086200000| Untracked -| 77|0x0000000086300000, 0x0000000086300000, 0x0000000086400000| 0%| F| |TAMS 0x0000000086300000, 0x0000000086300000| Untracked -| 78|0x0000000086400000, 0x0000000086400000, 0x0000000086500000| 0%| F| |TAMS 0x0000000086400000, 0x0000000086400000| Untracked -| 79|0x0000000086500000, 0x0000000086500000, 0x0000000086600000| 0%| F| |TAMS 0x0000000086500000, 0x0000000086500000| Untracked -| 80|0x0000000086600000, 0x0000000086600000, 0x0000000086700000| 0%| F| |TAMS 0x0000000086600000, 0x0000000086600000| Untracked -| 81|0x0000000086700000, 0x0000000086700000, 0x0000000086800000| 0%| F| |TAMS 0x0000000086700000, 0x0000000086700000| Untracked -| 82|0x0000000086800000, 0x0000000086800000, 0x0000000086900000| 0%| F| |TAMS 0x0000000086800000, 0x0000000086800000| Untracked -| 83|0x0000000086900000, 0x0000000086900000, 0x0000000086a00000| 0%| F| |TAMS 0x0000000086900000, 0x0000000086900000| Untracked -| 84|0x0000000086a00000, 0x0000000086a00000, 0x0000000086b00000| 0%| F| |TAMS 0x0000000086a00000, 0x0000000086a00000| Untracked -| 85|0x0000000086b00000, 0x0000000086b00000, 0x0000000086c00000| 0%| F| |TAMS 0x0000000086b00000, 0x0000000086b00000| Untracked -| 86|0x0000000086c00000, 0x0000000086c00000, 0x0000000086d00000| 0%| F| |TAMS 0x0000000086c00000, 0x0000000086c00000| Untracked -| 87|0x0000000086d00000, 0x0000000086d00000, 0x0000000086e00000| 0%| F| |TAMS 0x0000000086d00000, 0x0000000086d00000| Untracked -| 88|0x0000000086e00000, 0x0000000086e00000, 0x0000000086f00000| 0%| F| |TAMS 0x0000000086e00000, 0x0000000086e00000| Untracked -| 89|0x0000000086f00000, 0x0000000086f00000, 0x0000000087000000| 0%| F| |TAMS 0x0000000086f00000, 0x0000000086f00000| Untracked -| 90|0x0000000087000000, 0x0000000087000000, 0x0000000087100000| 0%| F| |TAMS 0x0000000087000000, 0x0000000087000000| Untracked -| 91|0x0000000087100000, 0x0000000087100000, 0x0000000087200000| 0%| F| |TAMS 0x0000000087100000, 0x0000000087100000| Untracked -| 92|0x0000000087200000, 0x0000000087200000, 0x0000000087300000| 0%| F| |TAMS 0x0000000087200000, 0x0000000087200000| Untracked -| 93|0x0000000087300000, 0x0000000087300000, 0x0000000087400000| 0%| F| |TAMS 0x0000000087300000, 0x0000000087300000| Untracked -| 94|0x0000000087400000, 0x0000000087400000, 0x0000000087500000| 0%| F| |TAMS 0x0000000087400000, 0x0000000087400000| Untracked -| 95|0x0000000087500000, 0x0000000087500000, 0x0000000087600000| 0%| F| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked -| 96|0x0000000087600000, 0x0000000087600000, 0x0000000087700000| 0%| F| |TAMS 0x0000000087600000, 0x0000000087600000| Untracked -| 97|0x0000000087700000, 0x0000000087700000, 0x0000000087800000| 0%| F| |TAMS 0x0000000087700000, 0x0000000087700000| Untracked -| 98|0x0000000087800000, 0x0000000087800000, 0x0000000087900000| 0%| F| |TAMS 0x0000000087800000, 0x0000000087800000| Untracked -| 99|0x0000000087900000, 0x0000000087900000, 0x0000000087a00000| 0%| F| |TAMS 0x0000000087900000, 0x0000000087900000| Untracked -| 100|0x0000000087a00000, 0x0000000087a00000, 0x0000000087b00000| 0%| F| |TAMS 0x0000000087a00000, 0x0000000087a00000| Untracked -| 101|0x0000000087b00000, 0x0000000087b00000, 0x0000000087c00000| 0%| F| |TAMS 0x0000000087b00000, 0x0000000087b00000| Untracked -| 102|0x0000000087c00000, 0x0000000087c00000, 0x0000000087d00000| 0%| F| |TAMS 0x0000000087c00000, 0x0000000087c00000| Untracked -| 103|0x0000000087d00000, 0x0000000087d00000, 0x0000000087e00000| 0%| F| |TAMS 0x0000000087d00000, 0x0000000087d00000| Untracked -| 104|0x0000000087e00000, 0x0000000087e00000, 0x0000000087f00000| 0%| F| |TAMS 0x0000000087e00000, 0x0000000087e00000| Untracked -| 105|0x0000000087f00000, 0x0000000087f00000, 0x0000000088000000| 0%| F| |TAMS 0x0000000087f00000, 0x0000000087f00000| Untracked -| 106|0x0000000088000000, 0x0000000088000000, 0x0000000088100000| 0%| F| |TAMS 0x0000000088000000, 0x0000000088000000| Untracked -| 107|0x0000000088100000, 0x0000000088100000, 0x0000000088200000| 0%| F| |TAMS 0x0000000088100000, 0x0000000088100000| Untracked -| 108|0x0000000088200000, 0x0000000088200000, 0x0000000088300000| 0%| F| |TAMS 0x0000000088200000, 0x0000000088200000| Untracked -| 109|0x0000000088300000, 0x0000000088300000, 0x0000000088400000| 0%| F| |TAMS 0x0000000088300000, 0x0000000088300000| Untracked -| 110|0x0000000088400000, 0x0000000088400000, 0x0000000088500000| 0%| F| |TAMS 0x0000000088400000, 0x0000000088400000| Untracked -| 111|0x0000000088500000, 0x0000000088500000, 0x0000000088600000| 0%| F| |TAMS 0x0000000088500000, 0x0000000088500000| Untracked -| 112|0x0000000088600000, 0x0000000088600000, 0x0000000088700000| 0%| F| |TAMS 0x0000000088600000, 0x0000000088600000| Untracked -| 113|0x0000000088700000, 0x0000000088700000, 0x0000000088800000| 0%| F| |TAMS 0x0000000088700000, 0x0000000088700000| Untracked -| 114|0x0000000088800000, 0x0000000088800000, 0x0000000088900000| 0%| F| |TAMS 0x0000000088800000, 0x0000000088800000| Untracked -| 115|0x0000000088900000, 0x0000000088900000, 0x0000000088a00000| 0%| F| |TAMS 0x0000000088900000, 0x0000000088900000| Untracked -| 116|0x0000000088a00000, 0x0000000088a00000, 0x0000000088b00000| 0%| F| |TAMS 0x0000000088a00000, 0x0000000088a00000| Untracked -| 117|0x0000000088b00000, 0x0000000088b00000, 0x0000000088c00000| 0%| F| |TAMS 0x0000000088b00000, 0x0000000088b00000| Untracked -| 118|0x0000000088c00000, 0x0000000088c00000, 0x0000000088d00000| 0%| F| |TAMS 0x0000000088c00000, 0x0000000088c00000| Untracked -| 119|0x0000000088d00000, 0x0000000088d00000, 0x0000000088e00000| 0%| F| |TAMS 0x0000000088d00000, 0x0000000088d00000| Untracked -| 120|0x0000000088e00000, 0x0000000088e00000, 0x0000000088f00000| 0%| F| |TAMS 0x0000000088e00000, 0x0000000088e00000| Untracked -| 121|0x0000000088f00000, 0x0000000088f00000, 0x0000000089000000| 0%| F| |TAMS 0x0000000088f00000, 0x0000000088f00000| Untracked -| 122|0x0000000089000000, 0x0000000089000000, 0x0000000089100000| 0%| F| |TAMS 0x0000000089000000, 0x0000000089000000| Untracked -| 123|0x0000000089100000, 0x000000008918cac0, 0x0000000089200000| 54%| E| |TAMS 0x0000000089100000, 0x0000000089100000| Complete -| 124|0x0000000089200000, 0x0000000089300000, 0x0000000089300000|100%| E|CS|TAMS 0x0000000089200000, 0x0000000089200000| Complete -| 125|0x0000000089300000, 0x0000000089400000, 0x0000000089400000|100%| E| |TAMS 0x0000000089300000, 0x0000000089300000| Complete -| 126|0x0000000089400000, 0x0000000089500000, 0x0000000089500000|100%| E|CS|TAMS 0x0000000089400000, 0x0000000089400000| Complete -| 127|0x0000000089500000, 0x0000000089600000, 0x0000000089600000|100%| E|CS|TAMS 0x0000000089500000, 0x0000000089500000| Complete - -Card table byte_map: [0x000001df2fa30000,0x000001df2fe30000] _byte_map_base: 0x000001df2f625000 - -Marking Bits (Prev, Next): (CMBitMap*) 0x000001df160172b8, (CMBitMap*) 0x000001df160172f8 - Prev Bits: [0x000001df30230000, 0x000001df321d8000) - Next Bits: [0x000001df321e0000, 0x000001df34188000) - -Polling page: 0x000001df160b0000 - -Metaspace: - -Usage: - Non-class: 4.42 MB capacity, 2.38 MB ( 54%) used, 2.04 MB ( 46%) free+waste, 2.81 KB ( <1%) overhead. - Class: 443.00 KB capacity, 247.74 KB ( 56%) used, 193.70 KB ( 44%) free+waste, 1.56 KB ( <1%) overhead. - Both: 4.86 MB capacity, 2.63 MB ( 54%) used, 2.23 MB ( 46%) free+waste, 4.38 KB ( <1%) overhead. - -Virtual space: - Non-class space: 8.00 MB reserved, 4.50 MB ( 56%) committed - Class space: 1.00 GB reserved, 512.00 KB ( <1%) committed - Both: 1.01 GB reserved, 5.00 MB ( <1%) committed - -Chunk freelists: - Non-Class: 1.75 KB - Class: 640 bytes - Both: 2.38 KB - -CodeHeap 'non-profiled nmethods': size=120000Kb used=117Kb max_used=117Kb free=119882Kb - bounds [0x000001df276a0000, 0x000001df27910000, 0x000001df2ebd0000] -CodeHeap 'profiled nmethods': size=120000Kb used=641Kb max_used=641Kb free=119358Kb - bounds [0x000001df20170000, 0x000001df203e0000, 0x000001df276a0000] -CodeHeap 'non-nmethods': size=5760Kb used=1159Kb max_used=1174Kb free=4601Kb - bounds [0x000001df1fbd0000, 0x000001df1fe40000, 0x000001df20170000] - total_blobs=873 nmethods=420 adapters=272 - compilation: enabled - stopped_count=0, restarted_count=0 - full_count=0 - -Compilation events (10 events): -Event: 319.745 Thread 0x000001df36c94000 417 3 org.eclipse.jdt.launching.internal.org.objectweb.asm.ByteVector::put122 (93 bytes) -Event: 319.745 Thread 0x000001df36c94000 nmethod 417 0x000001df2020cf90 code [0x000001df2020d160, 0x000001df2020d470] -Event: 319.747 Thread 0x000001df36c94000 418 3 org.eclipse.jdt.launching.internal.org.objectweb.asm.SymbolTable::addConstantUtf8Reference (101 bytes) -Event: 319.747 Thread 0x000001df36c94000 nmethod 418 0x000001df2020d690 code [0x000001df2020d8e0, 0x000001df2020e000] -Event: 319.747 Thread 0x000001df36c94000 420 3 org.eclipse.jdt.launching.internal.org.objectweb.asm.ClassReader::readStackMapFrame (535 bytes) -Event: 319.752 Thread 0x000001df36c94000 nmethod 420 0x000001df2020e390 code [0x000001df2020e680, 0x000001df2020fa00] -Event: 319.752 Thread 0x000001df36c94000 419 3 org.eclipse.jdt.launching.internal.org.objectweb.asm.SymbolTable::addConstantClass (8 bytes) -Event: 319.752 Thread 0x000001df36c94000 nmethod 419 0x000001df20210210 code [0x000001df202103e0, 0x000001df202105b0] -Event: 319.752 Thread 0x000001df36c94000 421 1 org.eclipse.jdt.launching.internal.org.objectweb.asm.SymbolTable::getMajorVersion (5 bytes) -Event: 319.752 Thread 0x000001df36c94000 nmethod 421 0x000001df276bd290 code [0x000001df276bd440, 0x000001df276bd578] - -GC Heap History (0 events): -No events - -Deoptimization events (3 events): -Event: 0.474 Thread 0x000001df15fd9000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000001df276ae3b0 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 152 c2 -Event: 0.506 Thread 0x000001df15fd9000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001df276ae4b8 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 181 c2 -Event: 0.675 Thread 0x000001df15fd9000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001df276af428 method=java.lang.String.isLatin1()Z @ 10 c2 - -Classes redefined (7 events): -Event: 124.547 Thread 0x000001df36c63800 redefined class name=Lexer, count=1 -Event: 173.223 Thread 0x000001df36c63800 redefined class name=Lexer, count=2 -Event: 195.431 Thread 0x000001df36c63800 redefined class name=Lexer, count=3 -Event: 203.289 Thread 0x000001df36c63800 redefined class name=Lexer, count=4 -Event: 213.268 Thread 0x000001df36c63800 redefined class name=Main, count=1 -Event: 241.094 Thread 0x000001df36c63800 redefined class name=Lexer, count=5 -Event: 319.750 Thread 0x000001df36c63800 redefined class name=Lexer, count=6 - -Internal exceptions (0 events): -No events - -Events (10 events): -Event: 319.900 Executing VM operation: GetOwnedMonitorInfo done -Event: 319.995 Executing VM operation: GetFrameCount -Event: 319.995 Executing VM operation: GetFrameCount done -Event: 319.996 Executing VM operation: GetOwnedMonitorInfo -Event: 319.996 Executing VM operation: GetOwnedMonitorInfo done -Event: 319.996 Executing VM operation: GetCurrentContendedMonitor -Event: 319.996 Executing VM operation: GetCurrentContendedMonitor done -Event: 319.999 Executing VM operation: GetFrameLocation -Event: 319.999 Executing VM operation: GetFrameLocation done -Event: 319.999 Executing VM operation: GetOrSetLocal - - -Dynamic libraries: -0x00007ff61e190000 - 0x00007ff61e19f000 C:\Program Files\Java\jdk-12.0.1\bin\javaw.exe -0x00007ffd7c250000 - 0x00007ffd7c43d000 C:\Windows\SYSTEM32\ntdll.dll -0x00007ffd7adb0000 - 0x00007ffd7ae63000 C:\Windows\System32\KERNEL32.DLL -0x00007ffd784c0000 - 0x00007ffd78753000 C:\Windows\System32\KERNELBASE.dll -0x00007ffd78390000 - 0x00007ffd7848a000 C:\Windows\System32\ucrtbase.dll -0x00007ffd6c940000 - 0x00007ffd6c956000 C:\Program Files\Java\jdk-12.0.1\bin\VCRUNTIME140.dll -0x00007ffd6ca20000 - 0x00007ffd6ca38000 C:\Program Files\Java\jdk-12.0.1\bin\jli.dll -0x00007ffd79470000 - 0x00007ffd79513000 C:\Windows\System32\ADVAPI32.dll -0x00007ffd7bd10000 - 0x00007ffd7bdae000 C:\Windows\System32\msvcrt.dll -0x00007ffd7c0b0000 - 0x00007ffd7c14e000 C:\Windows\System32\sechost.dll -0x00007ffd7ae70000 - 0x00007ffd7af92000 C:\Windows\System32\RPCRT4.dll -0x00007ffd7bf10000 - 0x00007ffd7c0a7000 C:\Windows\System32\USER32.dll -0x00007ffd5ffe0000 - 0x00007ffd60259000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.802_none_05b1445c0722d2cc\COMCTL32.dll -0x00007ffd78760000 - 0x00007ffd78780000 C:\Windows\System32\win32u.dll -0x00007ffd7b9e0000 - 0x00007ffd7bd0c000 C:\Windows\System32\combase.dll -0x00007ffd7b070000 - 0x00007ffd7b099000 C:\Windows\System32\GDI32.dll -0x00007ffd787d0000 - 0x00007ffd78969000 C:\Windows\System32\gdi32full.dll -0x00007ffd79210000 - 0x00007ffd7928e000 C:\Windows\System32\bcryptPrimitives.dll -0x00007ffd78970000 - 0x00007ffd78a10000 C:\Windows\System32\msvcp_win.dll -0x00007ffd71b10000 - 0x00007ffd71b1a000 C:\Windows\SYSTEM32\VERSION.dll -0x00007ffd7b9b0000 - 0x00007ffd7b9de000 C:\Windows\System32\IMM32.DLL -0x00007ffd51df0000 - 0x00007ffd51e9a000 C:\Program Files\Java\jdk-12.0.1\bin\msvcp140.dll -0x00007ffd35330000 - 0x00007ffd35ea4000 C:\Program Files\Java\jdk-12.0.1\bin\server\jvm.dll -0x00007ffd7afa0000 - 0x00007ffd7afa8000 C:\Windows\System32\PSAPI.DLL -0x00007ffd66a10000 - 0x00007ffd66a19000 C:\Windows\SYSTEM32\WSOCK32.dll -0x00007ffd75c70000 - 0x00007ffd75c94000 C:\Windows\SYSTEM32\WINMM.dll -0x00007ffd7b290000 - 0x00007ffd7b2fd000 C:\Windows\System32\WS2_32.dll -0x00007ffd759c0000 - 0x00007ffd759ed000 C:\Windows\SYSTEM32\winmmbase.dll -0x00007ffd78780000 - 0x00007ffd787ca000 C:\Windows\System32\cfgmgr32.dll -0x00007ffd78240000 - 0x00007ffd78251000 C:\Windows\System32\kernel.appcore.dll -0x00007ffd6cb00000 - 0x00007ffd6cb11000 C:\Program Files\Java\jdk-12.0.1\bin\verify.dll -0x00007ffd67110000 - 0x00007ffd672fd000 C:\Windows\SYSTEM32\DBGHELP.DLL -0x00007ffd673b0000 - 0x00007ffd673da000 C:\Windows\SYSTEM32\dbgcore.DLL -0x00007ffd6c8e0000 - 0x00007ffd6c906000 C:\Program Files\Java\jdk-12.0.1\bin\java.dll -0x00007ffd6c670000 - 0x00007ffd6c6a8000 C:\Program Files\Java\jdk-12.0.1\bin\jdwp.dll -0x00007ffd74bf0000 - 0x00007ffd74bfe000 C:\Program Files\Java\jdk-12.0.1\bin\instrument.dll -0x00007ffd6c880000 - 0x00007ffd6c897000 C:\Program Files\Java\jdk-12.0.1\bin\zip.dll -0x00007ffd74af0000 - 0x00007ffd74afa000 C:\Program Files\Java\jdk-12.0.1\bin\jimage.dll -0x00007ffd79580000 - 0x00007ffd7aa74000 C:\Windows\System32\SHELL32.dll -0x00007ffd7aa80000 - 0x00007ffd7ab28000 C:\Windows\System32\shcore.dll -0x00007ffd78ac0000 - 0x00007ffd7920d000 C:\Windows\System32\windows.storage.dll -0x00007ffd78280000 - 0x00007ffd782a4000 C:\Windows\System32\profapi.dll -0x00007ffd782b0000 - 0x00007ffd7830d000 C:\Windows\System32\powrprof.dll -0x00007ffd7b230000 - 0x00007ffd7b282000 C:\Windows\System32\shlwapi.dll -0x00007ffd78310000 - 0x00007ffd78327000 C:\Windows\System32\cryptsp.dll -0x00007ffd74ae0000 - 0x00007ffd74aea000 C:\Program Files\Java\jdk-12.0.1\bin\dt_socket.dll -0x00007ffd77ab0000 - 0x00007ffd77b17000 C:\Windows\System32\mswsock.dll -0x00007ffd77810000 - 0x00007ffd778d6000 C:\Windows\SYSTEM32\DNSAPI.dll -0x00007ffd7afb0000 - 0x00007ffd7afb8000 C:\Windows\System32\NSI.dll -0x00007ffd777d0000 - 0x00007ffd7780d000 C:\Windows\SYSTEM32\IPHLPAPI.DLL -0x00007ffd6c0f0000 - 0x00007ffd6c169000 C:\Windows\System32\fwpuclnt.dll -0x00007ffd78490000 - 0x00007ffd784b6000 C:\Windows\System32\bcrypt.dll -0x00007ffd6c0c0000 - 0x00007ffd6c0ca000 C:\Windows\System32\rasadhlp.dll -0x00007ffd6c610000 - 0x00007ffd6c629000 C:\Program Files\Java\jdk-12.0.1\bin\net.dll -0x00007ffd6b5d0000 - 0x00007ffd6b7a7000 C:\Windows\SYSTEM32\urlmon.dll -0x00007ffd6c170000 - 0x00007ffd6c262000 C:\Windows\SYSTEM32\WINHTTP.dll -0x00007ffd6b280000 - 0x00007ffd6b528000 C:\Windows\SYSTEM32\iertutil.dll -0x00007ffd77c80000 - 0x00007ffd77c8c000 C:\Windows\SYSTEM32\CRYPTBASE.DLL -0x00007ffd61820000 - 0x00007ffd61833000 C:\Program Files\Java\jdk-12.0.1\bin\nio.dll - -dbghelp: loaded successfully - version: 4.0.5 - missing functions: none -symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Program Files\Java\jdk-12.0.1\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.802_none_05b1445c0722d2cc;C:\Program Files\Java\jdk-12.0.1\bin\server - -VM Arguments: -jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:54478 -javaagent:C:\Users\Luiz Carlos Moitinho\eclipse\java-2019-06\eclipse\configuration\org.eclipse.osgi\226\0\.cp\lib\javaagent-shaded.jar -Dfile.encoding=Cp1252 -java_command: Main -java_class_path (initial): C:\Users\Luiz Carlos Moitinho\eclipse-workspace\AnaliseLexica\bin -Launcher Type: SUN_STANDARD - -[Global flags] - intx CICompilerCount = 4 {product} {ergonomic} - uint ConcGCThreads = 2 {product} {ergonomic} - uint G1ConcRefinementThreads = 8 {product} {ergonomic} - size_t G1HeapRegionSize = 1048576 {product} {ergonomic} - uintx GCDrainStackTargetSize = 64 {product} {ergonomic} - size_t InitialHeapSize = 134217728 {product} {ergonomic} - size_t MarkStackSize = 4194304 {product} {ergonomic} - size_t MaxHeapSize = 2124414976 {product} {ergonomic} - size_t MaxNewSize = 1274019840 {product} {ergonomic} - size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} - uintx NonNMethodCodeHeapSize = 5836300 {pd product} {ergonomic} - uintx NonProfiledCodeHeapSize = 122910970 {pd product} {ergonomic} - uintx ProfiledCodeHeapSize = 122910970 {pd product} {ergonomic} - uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} - bool SegmentedCodeCache = true {product} {ergonomic} - bool UseCompressedClassPointers = true {lp64_product} {ergonomic} - bool UseCompressedOops = true {lp64_product} {ergonomic} - bool UseG1GC = true {product} {ergonomic} - bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} - -Logging: -Log output configuration: - #0: stdout all=warning uptime,level,tags - #1: stderr all=off uptime,level,tags - -Environment Variables: -PATH=C:/Program Files/Java/jdk-12.0.1/bin/server;C:/Program Files/Java/jdk-12.0.1/bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;"C:\Programs\Python\Python37-32;C:\Programs\Python\Python37-32\Scripts";C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Luiz Carlos Moitinho\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Luiz Carlos Moitinho\Downloads\php-7.3.7-nts-Win32-VC15-x64;C:\Users\Luiz Carlos Moitinho\AppData\Local\Programs\Python\Python37-32;C:\Windows; -USERNAME=Luiz Carlos Moitinho -OS=Windows_NT -PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel - - - ---------------- S Y S T E M --------------- - -OS: Windows 10 , 64 bit Build 17763 (10.0.17763.475) - -CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 142 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma - -Memory: 4k page, system-wide physical 8101M (3957M free) -TotalPageFile size 10277M (AvailPageFile size 3843M) -current process WorkingSet (physical memory assigned to process): 41M, peak: 42M -current process commit charge ("private bytes"): 222M, peak: 224M - -vm_info: Java HotSpot(TM) 64-Bit Server VM (12.0.1+12) for windows-amd64 JRE (12.0.1+12), built on Apr 2 2019 14:02:19 by "mach5one" with MS VC++ 15.5 (VS2017) - -END. diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Arquivos.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Arquivos.java" deleted file mode 100644 index 4dbac0d..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Arquivos.java" +++ /dev/null @@ -1,4 +0,0 @@ - -public class Arquivos { - -} diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Buffer.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Buffer.java" deleted file mode 100644 index aedeb04..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Buffer.java" +++ /dev/null @@ -1,35 +0,0 @@ -import java.util.Scanner; - -public class Buffer { - protected String lexema; - protected int posAtual, posUltimo, posInicio; - public Buffer(String lexema){ - this.lexema=lexema; - this.posAtual=0; - this.posUltimo=0; - this.posInicio=0; - } - - public char proximo() { - return this.lexema.charAt(this.posAtual++); - } - public void marcarInicio(){ - this.posInicio= this.posAtual; - } - public void marcarUltimo(){ - this.posUltimo = this.posAtual; - } - public void retrair(int pos) { - this.posAtual -=pos; - } - public void retrairAoUltimo() { - this.posAtual--; - } - public String lexema() { - return this.lexema.substring(this.posInicio,this.posUltimo); - } - - public int getPosAtual() { - return this.posAtual; - } -} diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Lexer.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Lexer.java" deleted file mode 100644 index 404b3bd..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Lexer.java" +++ /dev/null @@ -1,337 +0,0 @@ - - -public class Lexer { - Token token; - Buffer buffer; - Simbolo simbolo = new Simbolo(); - - public Lexer(String lexema){ - this.buffer = new Buffer(lexema); - } - - public Token proximoToken() { - Character c; - int estado =0; // indica o estado atual - AFD - AFND - int ultimoEstadoFinal =-1; - buffer.marcarInicio(); - //percorre toda a string - scan: while(buffer.getPosAtual() < buffer.lexema.length() ) { - c = buffer.proximo(); - switch(estado) { - case 0: - //Ao entrar neste case, temos o primeiro caractere a ser lido - // q0 -> q1 - if(delimitador(c)) - estado = 29; - else if(c=='i') { - ultimoEstadoFinal = 1; - estado = 1; - buffer.marcarUltimo(); - } - // Verifica se é uma letra - else if(Character.isLetter(c) && c!='i') { - ultimoEstadoFinal = 3; - estado = 3 ; - this.buffer.marcarUltimo(); - } - else if(c =='<') { - estado = 4; - ultimoEstadoFinal =4; - buffer.marcarUltimo(); - } - else if(c =='=') { - estado = 6; - ultimoEstadoFinal =6; - buffer.marcarUltimo(); - } - else if(c =='>') { - estado = 8; - ultimoEstadoFinal =8; - buffer.marcarUltimo(); - } - // Verifica se é um digito - //Integer.parseInt(String.valueOf(digits.charAt(i))); - else if(Character.isDigit(c)){ - ultimoEstadoFinal = 10; - estado = 10; - buffer.marcarUltimo(); - } - else if(c==';'){ - estado = 29; - buffer.marcarUltimo(); - } - else { - ultimoEstadoFinal = -1; - break scan; - } - break; - case 1: - if(c=='f') { - ultimoEstadoFinal = 2; - estado =2; - buffer.marcarUltimo(); - } - else if(Character.isLetter(c) || Character.isDigit(c)) { - ultimoEstadoFinal = 3; - estado = 3 ; - this.buffer.marcarUltimo(); - } - else if(delimitador(c)) { - this.buffer.retrair(1); - estado = 29; - } - else { - ultimoEstadoFinal =-1; - estado =0; - } - break; - case 2: - // if - //Identifica se é um id, formado com letras e/ou numeros - if(this.validarID(c)) { - ultimoEstadoFinal = 3; - estado =3; - buffer.marcarUltimo(); - } - else if(delimitador(c)) { - buffer.retrair(1); - buffer.marcarUltimo(); - estado = 29; - } - else { - ultimoEstadoFinal =-1; - estado =0; - setultimoEstadoFinal(ultimoEstadoFinal); - break scan; - } - break; - case 3: - if(this.validarID(c)) { - ultimoEstadoFinal = 3; - estado = 3 ; - this.buffer.marcarUltimo(); - } - else if (c=='=') { - buffer.retrair(1); - setultimoEstadoFinal(ultimoEstadoFinal); - break scan; - } - else if(delimitador(c)) { - buffer.retrair(1); - setultimoEstadoFinal(ultimoEstadoFinal); - break scan; - } - else { - ultimoEstadoFinal =-1; - estado =0; - setultimoEstadoFinal(ultimoEstadoFinal); - } - - break; - case 4: - if(c =='=') { - estado =5; - ultimoEstadoFinal =5; - buffer.marcarUltimo(); - } - else if(delimitador(c)) { - buffer.retrair(1); - setultimoEstadoFinal(ultimoEstadoFinal); - break scan; - } - else if(c =='>') { - estado = 7; - ultimoEstadoFinal = 7; - buffer.marcarUltimo(); - }else { - estado =-1; - break scan; - } - break; - case 5: - if(c =='=') { - ultimoEstadoFinal = 5; - setultimoEstadoFinal(ultimoEstadoFinal); - } - - - break; - case 6: - if(c =='=') { - ultimoEstadoFinal = 6; - setultimoEstadoFinal(ultimoEstadoFinal); - - } - else { - buffer.retrair(1); - setultimoEstadoFinal(ultimoEstadoFinal); - break scan; - } - - break; - case 7: - ultimoEstadoFinal = 7; - setultimoEstadoFinal(ultimoEstadoFinal); - break; - case 8: - if(c =='=') { - estado =9; - ultimoEstadoFinal =9; - buffer.marcarUltimo(); - } - break; - case 10: - if(Character.isDigit(c)){ - ultimoEstadoFinal = 10; - estado = 10; - buffer.marcarUltimo(); - } - else if(c =='.') { - estado =11; - ultimoEstadoFinal =10; - buffer.marcarUltimo(); - } - else if(c =='E') { - estado =13; - ultimoEstadoFinal =10; - buffer.marcarUltimo(); - }else { - break scan; - } - break; - case 11: - if(Character.isDigit(c)) { - estado =12; - ultimoEstadoFinal =12; - buffer.marcarUltimo(); - }else { - ultimoEstadoFinal = -1; - } - break; - case 12: - if(Character.isDigit(c)) { - estado =12; - ultimoEstadoFinal =12; - buffer.marcarUltimo(); - } - else if(c =='E') { - estado =13; - ultimoEstadoFinal =12; - buffer.marcarUltimo(); - }else { - break scan; - } - break; - case 13: - if(c=='-' || c=='+') { - estado =14; - buffer.marcarUltimo(); - } - else if(Character.isDigit(c)) { - estado =15; - ultimoEstadoFinal =15; - buffer.marcarUltimo(); - } - else { - break scan; - } - break; - case 14: - if(Character.isDigit(c)) { - estado =15; - ultimoEstadoFinal =15; - buffer.marcarUltimo(); - }else { - ultimoEstadoFinal = -1; - } - - break; - case 29: - if(!delimitador(c)) { - buffer.retrair(1); - buffer.marcarInicio(); - estado=0; - }else { - - estado = -1; - break scan; - } - break; - } - } // fim scan:while - setultimoEstadoFinal(ultimoEstadoFinal); - return token; - } - private boolean validarID(Character c) { - if(Character.isLetter(c) || Character.isDigit(c)) { - return true; - } - else - return false; - } - private boolean delimitador(Character codigo) { - return codigo == ' '? true : false; - } - private void setultimoEstadoFinal(int ultimoEstadoFinal) { - switch(ultimoEstadoFinal) { - case -1: - this.token= new Token(-1); - break; - case 1: - this.buffer.marcarUltimo(); - this.token= new Token(this.simbolo.ID,buffer.lexema()); - break; - case 2: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.IF); - break; - case 3: - this.buffer.marcarUltimo(); - this.token= new Token(this.simbolo.ID,buffer.lexema()); - break; - case 4: - this.buffer.marcarUltimo(); - this.token= new Token(this.simbolo.LT); - break; - case 5: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.LE); - break; - case 6: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.EQ); - break; - case 7: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.NEQ); - break; - case 8: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.GT); - break; - case 9: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.GE); - break; - case 10: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.NUM,buffer.lexema()); - break; - case 12: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.NUM,buffer.lexema()); - break; - case 15: - this.buffer.marcarUltimo(); - this.token = new Token(this.simbolo.NUM,buffer.lexema()); - break; - } - - } - public void Error() { - - - } - - -} diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Main.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Main.java" deleted file mode 100644 index d5e620d..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Main.java" +++ /dev/null @@ -1,14 +0,0 @@ -import java.util.ArrayList; -import java.util.Scanner; -import java.util.ArrayList; - -public class Main { - public static void main(String Args[]) { - ArrayList tokens = new ArrayList(); - Lexer lexer = new Lexer("if a"); -// while(lexer.buffer.getPosAtual() < lexer.buffer.lexema.length()) - System.out.println(lexer.proximoToken().toString()); - System.out.println(lexer.proximoToken().toString()); - System.out.println(lexer.proximoToken().toString()); - } -} \ No newline at end of file diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Simbolo.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Simbolo.java" deleted file mode 100644 index d2fa2f8..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Simbolo.java" +++ /dev/null @@ -1,13 +0,0 @@ - -public class Simbolo { - public final static int IF =2; - public final static int ID =3; // - public final static int GT =4; // > - public final static int LT =8; // < - public final static int GE =9; // >= - public final static int LE =5; // <= - public final static int EQ =6; // = - public final static int NEQ =7; // != - public final static int NUM =10; - public final static int DELIM =20; // ; -} diff --git "a/utility/An\303\241lise l\303\251xica - JAVA/src/Token.java" "b/utility/An\303\241lise l\303\251xica - JAVA/src/Token.java" deleted file mode 100644 index 6632fe3..0000000 --- "a/utility/An\303\241lise l\303\251xica - JAVA/src/Token.java" +++ /dev/null @@ -1,18 +0,0 @@ - -public class Token { - protected final int codigo; - protected String valor; - - public Token(int c,String v) { - this.codigo= c; - this.valor=v; - } - public Token(int c) { - this(c,null); - } - - public String toString() { - return "Token:\n" + "<"+this.codigo+","+this.valor+">"; - - } -} diff --git a/utility/Documentos/TutorialLFT (1).docx b/utility/Documentos/TutorialLFT (1).docx deleted file mode 100644 index c923d56..0000000 Binary files a/utility/Documentos/TutorialLFT (1).docx and /dev/null differ diff --git a/utility/Documentos/TutorialLFT (2).pdf b/utility/Documentos/TutorialLFT (2).pdf deleted file mode 100644 index 6375737..0000000 Binary files a/utility/Documentos/TutorialLFT (2).pdf and /dev/null differ diff --git a/utility/Exemplos de codigos/AnaliseLexica.py b/utility/Exemplos de codigos/AnaliseLexica.py deleted file mode 100644 index 7a5a959..0000000 --- a/utility/Exemplos de codigos/AnaliseLexica.py +++ /dev/null @@ -1,200 +0,0 @@ -import ply.lex as lex - -reserved = { - 'var' : 'VAR', - 'array' : 'ARRAY', - 'const' : 'CONST', - 'if' : 'IF', - 'else' : 'ELSE', - 'elseif' : 'ELSEIF', - 'for' : 'FOR', - 'while' : 'WHILE', - 'do' : 'DO', - 'foreach' : 'FOREACH', - 'switch' : 'SWITCH', - 'case' : 'CASE', - 'break' : 'BREAK', - 'continue' : 'CONTINUE', - 'return' : 'RETURN', - 'true' : 'TRUE', - 'false' : 'FALSE', - 'null' : 'NULL', - 'and' : 'AND', - 'or' : 'OR', - 'xor' : 'XOR', - 'new' : 'NEW', - 'instanceof' : 'INSTANCEOF', - 'function' : 'FUNCTION', - 'class' : 'CLASS', - 'default' : 'DEFAULT', -} - -tokens =[ - 'COMMENT_SINGLE', - 'COMMENT_MULTI', - 'BEGIN_PROGRAM', - 'END_PROGRAM', - 'EQUAL', - 'NOT_EQUAL', - 'GREAT_THAN', - 'LESS_THAN', - 'LESS_EQUAL', - 'GREAT_EQUAL', - 'LPAREN', - 'RPAREN', - 'LBRACKT', - 'RBRACKT', - 'LKEY', - 'RKEY', - 'PLUS', - 'MINUS', - 'DIVIDE', - 'TIMES', - 'PERCENT', - 'ANDLCC', - 'ORLCC', - 'ANDL', - 'ORL', - 'INCREMENT', - 'DECREMENT', - 'ASSIGN', - 'SEMICOLON', - 'LEFT_LOGICAL', - 'RIGHT_LOGICAL', - 'IDENTATION', - 'STRING', - 'NUMBER_REAL', - 'NUMBER_INTEGER', - 'ID', -] + list(reserved.values()) - -t_ignore = ' \t' -t_VAR = r'var' -t_ARRAY = r'array' -t_CONST = r'const' -t_IF = r'if' -t_ELSE = r'else' -t_ELSEIF = r'elseif' -t_FOR = r'for' -t_WHILE = r'while' -t_DO = r'do' -t_FOREACH = r'foreach' -t_SWITCH = r'switch' -t_CASE = r'case' -t_BREAK = r'break' -t_CONTINUE = r'continue' -t_RETURN = r'return' -t_TRUE = r'true' -t_FALSE = r'false' -t_NULL = r'null' -t_AND = r'and' -t_OR = r'or' -t_XOR = r'xor' -t_NEW = r'new' -t_INSTANCEOF = r'instanceof' -t_FUNCTION = r'function' -t_CLASS = r'class' -t_DEFAULT = r'default' - -t_COMMENT_SINGLE = r'\//.* | \#.*' -t_COMMENT_MULTI = r'\/\*(.|\n)*\*\/' -t_BEGIN_PROGRAM = r'\<\?php | \<\?\= | \<\?' -t_END_PROGRAM = r'\?\>' -t_EQUAL = r'\=\=' -t_NOT_EQUAL = r'\!\=' -t_GREAT_THAN = r'\>' -t_LESS_THAN = r'\<' -t_LESS_EQUAL = r'\<\=' -t_GREAT_EQUAL = r'\>\=' -t_LPAREN = r'\(' -t_RPAREN = r'\)' -t_LBRACKT = r'\[' -t_RBRACKT = r'\]' -t_LKEY = r'{' -t_RKEY = r'}' -t_PLUS = r'\+' -t_MINUS = r'-' -t_DIVIDE = r'/' -t_TIMES = r'\*' -t_PERCENT = r'\%' -t_ANDLCC = r'\&&' -t_ORLCC = r'\|\|' -t_ANDL = r'\&' -t_ORL = r'\|' -t_INCREMENT = r'\++' -t_DECREMENT = r'\--' -t_ASSIGN = r'\=' -t_SEMICOLON = r'\;' -t_LEFT_LOGICAL = r'\<\<' -t_RIGHT_LOGICAL = r'\>\>' - -ArrayTabulacao = [0] -IndicePosicao = 0 -ConstTabulacao = 8 - -def t_IDENTATION(t): - r'\n[ \t]*' - global IndicePosicao - global ConstTabulacao - Tamanho = 0 - - for i in t.value: - if(i == ' '): - Tamanho += 1 - else: - if(i != '\n'): - Auxiliar = Tamanho // ConstTabulacao - Tamanho = (Auxiliar + 1) * ConstTabulacao - - if(ArrayTabulacao[IndicePosicao] < Tamanho): - ArrayTabulacao.append(Tamanho) - IndicePosicao += 1 - if(ArrayTabulacao[IndicePosicao] > Tamanho): - if(Tamanho in ArrayTabulacao): - del ArrayTabulacao[ArrayTabulacao.index(Tamanho)+1:len(ArrayTabulacao)] - IndicePosicao = ArrayTabulacao.index(Tamanho) - else: - print("Identação ilegal foi encontrada") - -def t_STRING(t): - r'\".*\"' - return t - -def t_NUMBER_REAL(t): - r'\d*\.\d+' - t.value = float(t.value) - return t - -def t_NUMBER_INTEGER(t): - r'\d+' - t.value = int(t.value) - return t - -def t_ID(t): - r'\$[_a-zA-Z_][a-zA-Z_0-9]*' - t.type = reserved.get(t.value,'ID') - return t - -def t_newline(t): - r'\n+' - pass - -def t_error(t): - print("Um caracter ilegal foi encontrado: '%s'" % t.value[0]) - t.lexer.skip(1) - - - -arquivo ='''''' - -lexer = lex.lex() -lexer.input(arquivo) - -while True: - token = lexer.token() - if not token: - break - print(token) diff --git a/utility/Exemplos de codigos/lexico.py b/utility/Exemplos de codigos/lexico.py deleted file mode 100644 index e35f1ea..0000000 --- a/utility/Exemplos de codigos/lexico.py +++ /dev/null @@ -1,115 +0,0 @@ -# ------------------------------------------------------------ -# calclex.py -# -# tokenizer for a simple expression evaluator for -# numbers and +,-,*,/ -# ------------------------------------------------------------ - -import ply.lex as lex -# List of token names. This is always required -tokens = ['ID','NUMBER','REAL','PLUS','MINUS','TIMES','DIVIDE', -'LPAREN','RPAREN','EQUAL','COMMENT_LINES','STRING','DPOINTS' -'LBRACKETS','RBRACKETS','LBRACE','RBRACE','SEMICOLON','BEGIN_COMMENT','END_COMMENT'] - - -# Regular expression rules for simple tokens -t_PLUS = r'\+' -t_MINUS = r'-' -t_TIMES = r'\*' -t_DIVIDE = r'/' -t_LPAREN = r'\(' -t_RPAREN = r'\)' -t_EQUAL = r'\=' - -#t_COMMENT_LINES = r'(/\* .* \*/) | (//.*)' -reserved = { -'if' : 'IF', -'then' : 'THEN', -'else' : 'ELSE', -'while' : 'WHILE', -'for':'FOR', -'int':'INT', -'float':'FLOAT' , -'function':'FUNCTION' -} - - -literals = ['{','}','[',']',':',';'] -tokens += list(reserved.values()) - -# ================ literais ==================== -def T_LBRACE(t): - r'\{' - t.type = '{' - return t - -def T_RBRACE(t): - r'\}' - t.type = '}' - return t - -def T_LBRACKET(t): - r'\[' - t.type = '[' - return t - -def T_RBRACKET(t): - r'\]' - t.type = ']' - return t - -def T_DPOINTS(t): - r'\:' - t.type = ':' - return t - - -def t_COMMENT_LINES(t): - r'(/\* .* \*/) | (//.*)' - pass - -def t_ID(t): - r'[a-zA-Z_][a-zA-Z_0-9]*' - t.type = reserved.get(t.value,'ID') # Check for reserved words - return t - -def t_STRING(t): - r"\"+[a-zA-Z_]*\"+" - t.value = str(t.value) - return t - -# A regular expression rule with some action code -def t_REAL(t): - r'\d*\.\d+' - t.value = float(t.value) - return t -# A regular expression rule with some action code -def t_NUMBER(t): - r'\d+' - t.value = int(t.value) - return t - -# Define a rule so we can track line numbers -def t_newline(t): - r'\n+' - t.lexer.lineno += len(t.value) - -# A string containing ignored characters (spaces and tabs) -t_ignore = ' \t' - -# Error handling rule -def t_error(t): - print("Illegal character '%s'" % t.value[0]) - t.lexer.skip(1) - -# Build the lexer -lexer = lex.lex() -expression = ' les /*ASDAS*/ // asd' -#Gerar os tokens da análise lexica -lexer.input(expression); -print("-----------------------") -while True: - tok = lexer.token() - if not tok: - break #não possui mais tokens - print(tok) \ No newline at end of file diff --git a/utility/Exemplos de codigos/tarefas/exemplosCodigo.php b/utility/Exemplos de codigos/tarefas/exemplosCodigo.php deleted file mode 100644 index deec6fb..0000000 --- a/utility/Exemplos de codigos/tarefas/exemplosCodigo.php +++ /dev/null @@ -1,39 +0,0 @@ - -"; - - } - } -} - -Main(10,[10,2]) - -?> - - - - - diff --git a/utility/Exemplos de codigos/tarefas/index.php b/utility/Exemplos de codigos/tarefas/index.php deleted file mode 100644 index 467858f..0000000 --- a/utility/Exemplos de codigos/tarefas/index.php +++ /dev/null @@ -1,44 +0,0 @@ - -
-
-
- -
-
- - -
- -
- - diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.py" deleted file mode 100644 index 163f4c4..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.py" +++ /dev/null @@ -1,37 +0,0 @@ -# ------------------------- -# ExpressionLanguageLex.py -#---------------------- - -import ply.lex as lex - -tokens = ('COMMA', 'SOMA', 'ID', 'NUMBER', 'VEZES', 'POT', 'LPAREN', 'RPAREN', 'IGUAL',) -t_IGUAL= r'=' -t_SOMA = r'\+' -t_VEZES = r'\*' -t_POT = r'\^' -t_LPAREN = r'\(' -t_RPAREN = r'\)' -t_COMMA = r',' -t_ID = r'[a-zA-Z_][a-zA-Z_0-9]*' -t_ignore = ' \t' - -def t_NUMBER(t): - r'\d+' - t.value = int(t.value) - return t - -def t_newline(t): - r'\n+' - t.lexer.lineno += len(t.value) - -def t_error(t): - print("Illegal character '%s'" % t.value[0]) - t.lexer.skip(1) - -lexer = lex.lex() - -# # Test it out -data = ''' -8*8+9 -''' -lexer.input(data) \ No newline at end of file diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.pyc" deleted file mode 100644 index 90230d8..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageLex.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageParser.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageParser.py" deleted file mode 100644 index d3b7627..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/ExpressionLanguageParser.py" +++ /dev/null @@ -1,77 +0,0 @@ -# ------------------------- -# ExpressionLanguageParser.py -#---------------------- - -import ply.yacc as yacc -import ply.lex as lex -from Visitor import Visitor - -from ExpressionLanguageLex import tokens -import SintaxeAbstrata as sa - -def p_exp_soma(p): - '''exp : exp SOMA exp1 - | exp1''' - if(len(p) == 4): - p[0] = sa.SomaExp(p[1], p[3]) - else: - p[0] = p[1] - -def p_exp1_vezes(p): - '''exp1 : exp1 VEZES exp2 - | exp2''' - if(len(p) == 4): - p[0] = sa.MulExp(p[1], p[3]) - else: - p[0] = p[1] - -def p_exp2_expo(p): - '''exp2 : exp3 POT exp - | exp3''' - if(len(p) == 4): - p[0] = sa.PotExp(p[1], p[3]) - else: - p[0] = p[1] - -def p_exp3(p): - '''exp3 : assign - | NUMBER - | ID - | call''' - - if(isinstance(p[1], sa.Call)): - p[0] = sa.CallExp(p[1]) - elif(isinstance(p[1], sa.Assign)): - p[0] = sa.AssignExp(p[1]) - elif(isinstance(p[1],int)): - p[0] = sa.NumExp(p[1]) - else: - p[0] = sa.IDExp(p[1]) - - -def p_call(p): - '''call : ID LPAREN params RPAREN - | ID LPAREN RPAREN - ''' - if(len(p) == 5): - p[0] = sa.ParamsCall(p[1], p[3]) - else: - p[0] = sa.SimpleCall(p[1]) - - -def p_params(p): - '''params : ID COMMA params - | ID''' - if(len(p) == 4): - p[0] = sa.CompoundParams(p[1],p[3]) - else: - p[0] = sa.SingleParam(p[1]) - -def p_assign(p): - '''assign : ID IGUAL exp''' - p[0] = sa.AssignSimple(p[1],p[3]) - -parser = yacc.yacc() -result = parser.parse(debug=True) -v = Visitor() -result.accept(v) \ No newline at end of file diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/SintaxeAbstrata.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/SintaxeAbstrata.py" deleted file mode 100644 index 9f62fae..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/SintaxeAbstrata.py" +++ /dev/null @@ -1,117 +0,0 @@ -from abc import abstractclassmethod -from abc import ABCMeta -from Visitor import Visitor - - - - -# ========== CLASSES ABSTRATAS ================ -class Exp(metaclass=ABCMeta): - @abstractclassmethod - def accept(self, Visitor): - pass - -class Call(metaclass=ABCMeta): - @abstractclassmethod - def accept(self, Visitor): - pass - -class Assign(metaclass=ABCMeta): - @abstractclassmethod - def accept(self, Visitor): - pass - - -class Params(metaclass=ABCMeta): - @abstractclassmethod - def accept(self, Visitor): - pass - - -# ========== CLASSES CONCRETAS ================ - -# classes Exp - -class SomaExp(Exp): - def __init__(self, exp1, exp2): - self.exp1 = exp1 - self.exp2 = exp2 - def accept(self, Visitor): - Visitor.visitSomaExp(self) - -class MulExp(Exp): - def __init__(self, exp1, exp2): - self.exp1 = exp1 - self.exp2 = exp2 - def accept(self, Visitor): - Visitor.visitMulExp(self) - -class PotExp(Exp): - def __init__(self, exp1, exp2): - self.exp1 = exp1 - self.exp2 = exp2 - def accept(self, Visitor): - Visitor.visitPotExp(self) - -class CallExp(Exp): - def __init__(self, call): - self.call = call - def accept(self, Visitor): - Visitor.visitCallExp(self) - -class AssignExp(Exp): - def __init__(self, assign): - self.assign = assign - def accept(self, Visitor): - Visitor.visitAssignExp(self) - -class NumExp(Exp): - def __init__(self, num): - self.num = num - def accept(self, Visitor): - Visitor.visitNumExp(self) - -class IDExp(Exp): - def __init__(self, id): - self.id = id - def accept(self, Visitor): - Visitor.visitIDExp(self) - -# classes Call - -class ParamsCall(Call): - def __init__(self, id, call): - self.id = id - self.call = call - def accept(self, Visitor): - Visitor.visitParamsCall(self) - -class SimpleCall(Call): - def __init__(self, id): - self.id = id - def accept(self, Visitor): - Visitor.visitSimpleCall(self) - -# classes Params - -class CompoundParams(Params): - def __init__(self, id, Params): - self.id = id - self.Params = Params - def accept(self, Visitor): - Visitor.visitCompoundParams(self) - -class SingleParam(Params): - def __init__(self, id): - self.id = id - def accept(self, Visitor): - Visitor.visitSingleParam(self) - -#------------------------------------------------------------- - -class AssignSimple(Assign): - def __init__(self, id,exp): - self.id = id - self.exp = exp - def accept(self, Visitor): - Visitor.visitAssignSimple(self) \ No newline at end of file diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor-v2.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor-v2.py" deleted file mode 100644 index f2a13a0..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor-v2.py" +++ /dev/null @@ -1,51 +0,0 @@ -class Visitor(): - def visitSomaExp(self, SomaExp): - SomaExp.exp1.accept(self) - print('+', end = ' ') - SomaExp.exp2.accept(self) - - def visitMulExp(self, MulExp): - MulExp.exp1.accept(self) - print('*', end = ' ') - MulExp.exp2.accept(self) - - def visitPotExp(self, PotExp): - PotExp.exp1.accept(self) - print('^', end = ' ') - PotExp.exp2.accept(self) - - def visitCallExp(self, CallExp): - CallExp.call.accept(self) - - def visitAssignExp(self, AssignExp): - AssignExp.assign.accept(self) - - def visitNumExp(self, NumExp): - print(NumExp.num, end = ' ') - - def visitIDExp(self, IDExp): - print(IDExp.id, end = ' ') - - def visitParamsCall(self, ParamsCall): - print(ParamsCall.id, end = ' ') - print('(', end = ' ') - ParamsCall.call.accept(self) - print(')', end = ' ') - - def visitSimpleCall(self, SimpleCall): - print(SimpleCall.id, end = ' ') - print('(', end = ' ') - print(')', end = ' ') - - def visitCompoundParams(self, CompoundParams): - print(CompoundParams.id, end = ' ') - print(',', end = ' ') - CompoundParams.Params.accept(self) - - def visitSingleParam(self, SingleParam): - print(SingleParam.id, end = ' ') - - def visitAssignC(self, AssignC): - print(AssignC.id, end =' ') - print('=', end = ' ') - AssignC.Exp.accept(self) diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor.py" deleted file mode 100644 index 5a75de9..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/Visitor.py" +++ /dev/null @@ -1,57 +0,0 @@ - - - -class Visitor(): - - - def visitSomaExp(self,somaExp): - somaExp.exp1.accept(self) - print('+') - somaExp.exp2.accept(self) - - - def visitMulExp(self,mulExp): - mulExp.exp1.accept(self) - print('*') - mulExp.exp2.accept(self) - - def visitPotExp(self,potExp): - potExp.exp1.accept(self) - print("^") - potExp.exp2.accept(self) - - def visitCallExp(self,callExp): - callExp.call.accept(self) - - def visitAssignExp(self,assignExp): - assignExp.assign.accept(self) - - def visitNumExp(self,numExp): - print(numExp.num) - - def visitIDExp(self,idExp): - print(idExp.id) - - def visitParamsCall(self,paramsCall): - - print(paramsCall.id) - print('(') - paramsCall.call.accept(self) - print(')') - - def visitSimpleCall(self,simpleCall): - print(simpleCall.id) - print('( )') - - def visitCompoundParams(self,compoundParams): - print(compoundParams.id) - print(',') - compoundParams.params.accept(self) - - def visitSingleParam(self,singleParam): - print(singleParam.id) - - def visitAssignSimple(self,assignCompound): - print(assignCompound.id) - print('=') - assignCompound.exp.accept(self) \ No newline at end of file diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-37.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-37.pyc" deleted file mode 100644 index 7e9cd42..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-37.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-38.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-38.pyc" deleted file mode 100644 index 80d7b53..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/ExpressionLanguageLex.cpython-38.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-37.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-37.pyc" deleted file mode 100644 index 4748ef5..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-37.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-38.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-38.pyc" deleted file mode 100644 index f0db9fa..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/SintaxeAbstrata.cpython-38.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/Visitor.cpython-38.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/Visitor.cpython-38.pyc" deleted file mode 100644 index bb6686d..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/Visitor.cpython-38.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-37.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-37.pyc" deleted file mode 100644 index 812cce4..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-37.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-38.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-38.pyc" deleted file mode 100644 index da194ab..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/__pycache__/parsetab.cpython-38.pyc" and /dev/null differ diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parser.out" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parser.out" deleted file mode 100644 index 669cef4..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parser.out" +++ /dev/null @@ -1,387 +0,0 @@ -Created by PLY version 3.11 (http://www.dabeaz.com/ply) - -Grammar - -Rule 0 S' -> exp -Rule 1 exp -> exp SOMA exp1 -Rule 2 exp -> exp1 -Rule 3 exp1 -> exp1 VEZES exp2 -Rule 4 exp1 -> exp2 -Rule 5 exp2 -> exp3 POT exp -Rule 6 exp2 -> exp3 -Rule 7 exp3 -> assign -Rule 8 exp3 -> NUMBER -Rule 9 exp3 -> ID -Rule 10 exp3 -> call -Rule 11 call -> ID LPAREN params RPAREN -Rule 12 call -> ID LPAREN RPAREN -Rule 13 params -> ID COMMA params -Rule 14 params -> ID -Rule 15 assign -> ID IGUAL exp - -Terminals, with rules where they appear - -COMMA : 13 -ID : 9 11 12 13 14 15 -IGUAL : 15 -LPAREN : 11 12 -NUMBER : 8 -POT : 5 -RPAREN : 11 12 -SOMA : 1 -VEZES : 3 -error : - -Nonterminals, with rules where they appear - -assign : 7 -call : 10 -exp : 1 5 15 0 -exp1 : 1 2 3 -exp2 : 3 4 -exp3 : 5 6 -params : 11 13 - -Parsing method: LALR - -state 0 - - (0) S' -> . exp - (1) exp -> . exp SOMA exp1 - (2) exp -> . exp1 - (3) exp1 -> . exp1 VEZES exp2 - (4) exp1 -> . exp2 - (5) exp2 -> . exp3 POT exp - (6) exp2 -> . exp3 - (7) exp3 -> . assign - (8) exp3 -> . NUMBER - (9) exp3 -> . ID - (10) exp3 -> . call - (15) assign -> . ID IGUAL exp - (11) call -> . ID LPAREN params RPAREN - (12) call -> . ID LPAREN RPAREN - - NUMBER shift and go to state 6 - ID shift and go to state 7 - - exp shift and go to state 1 - exp1 shift and go to state 2 - exp2 shift and go to state 3 - exp3 shift and go to state 4 - assign shift and go to state 5 - call shift and go to state 8 - -state 1 - - (0) S' -> exp . - (1) exp -> exp . SOMA exp1 - - SOMA shift and go to state 9 - - -state 2 - - (2) exp -> exp1 . - (3) exp1 -> exp1 . VEZES exp2 - - ! shift/reduce conflict for VEZES resolved as shift - SOMA reduce using rule 2 (exp -> exp1 .) - $end reduce using rule 2 (exp -> exp1 .) - POT reduce using rule 2 (exp -> exp1 .) - VEZES shift and go to state 10 - - ! VEZES [ reduce using rule 2 (exp -> exp1 .) ] - - -state 3 - - (4) exp1 -> exp2 . - - VEZES reduce using rule 4 (exp1 -> exp2 .) - SOMA reduce using rule 4 (exp1 -> exp2 .) - $end reduce using rule 4 (exp1 -> exp2 .) - POT reduce using rule 4 (exp1 -> exp2 .) - - -state 4 - - (5) exp2 -> exp3 . POT exp - (6) exp2 -> exp3 . - - ! shift/reduce conflict for POT resolved as shift - POT shift and go to state 11 - VEZES reduce using rule 6 (exp2 -> exp3 .) - SOMA reduce using rule 6 (exp2 -> exp3 .) - $end reduce using rule 6 (exp2 -> exp3 .) - - ! POT [ reduce using rule 6 (exp2 -> exp3 .) ] - - -state 5 - - (7) exp3 -> assign . - - POT reduce using rule 7 (exp3 -> assign .) - VEZES reduce using rule 7 (exp3 -> assign .) - SOMA reduce using rule 7 (exp3 -> assign .) - $end reduce using rule 7 (exp3 -> assign .) - - -state 6 - - (8) exp3 -> NUMBER . - - POT reduce using rule 8 (exp3 -> NUMBER .) - VEZES reduce using rule 8 (exp3 -> NUMBER .) - SOMA reduce using rule 8 (exp3 -> NUMBER .) - $end reduce using rule 8 (exp3 -> NUMBER .) - - -state 7 - - (9) exp3 -> ID . - (15) assign -> ID . IGUAL exp - (11) call -> ID . LPAREN params RPAREN - (12) call -> ID . LPAREN RPAREN - - POT reduce using rule 9 (exp3 -> ID .) - VEZES reduce using rule 9 (exp3 -> ID .) - SOMA reduce using rule 9 (exp3 -> ID .) - $end reduce using rule 9 (exp3 -> ID .) - IGUAL shift and go to state 12 - LPAREN shift and go to state 13 - - -state 8 - - (10) exp3 -> call . - - POT reduce using rule 10 (exp3 -> call .) - VEZES reduce using rule 10 (exp3 -> call .) - SOMA reduce using rule 10 (exp3 -> call .) - $end reduce using rule 10 (exp3 -> call .) - - -state 9 - - (1) exp -> exp SOMA . exp1 - (3) exp1 -> . exp1 VEZES exp2 - (4) exp1 -> . exp2 - (5) exp2 -> . exp3 POT exp - (6) exp2 -> . exp3 - (7) exp3 -> . assign - (8) exp3 -> . NUMBER - (9) exp3 -> . ID - (10) exp3 -> . call - (15) assign -> . ID IGUAL exp - (11) call -> . ID LPAREN params RPAREN - (12) call -> . ID LPAREN RPAREN - - NUMBER shift and go to state 6 - ID shift and go to state 7 - - exp1 shift and go to state 14 - exp2 shift and go to state 3 - exp3 shift and go to state 4 - assign shift and go to state 5 - call shift and go to state 8 - -state 10 - - (3) exp1 -> exp1 VEZES . exp2 - (5) exp2 -> . exp3 POT exp - (6) exp2 -> . exp3 - (7) exp3 -> . assign - (8) exp3 -> . NUMBER - (9) exp3 -> . ID - (10) exp3 -> . call - (15) assign -> . ID IGUAL exp - (11) call -> . ID LPAREN params RPAREN - (12) call -> . ID LPAREN RPAREN - - NUMBER shift and go to state 6 - ID shift and go to state 7 - - exp2 shift and go to state 15 - exp3 shift and go to state 4 - assign shift and go to state 5 - call shift and go to state 8 - -state 11 - - (5) exp2 -> exp3 POT . exp - (1) exp -> . exp SOMA exp1 - (2) exp -> . exp1 - (3) exp1 -> . exp1 VEZES exp2 - (4) exp1 -> . exp2 - (5) exp2 -> . exp3 POT exp - (6) exp2 -> . exp3 - (7) exp3 -> . assign - (8) exp3 -> . NUMBER - (9) exp3 -> . ID - (10) exp3 -> . call - (15) assign -> . ID IGUAL exp - (11) call -> . ID LPAREN params RPAREN - (12) call -> . ID LPAREN RPAREN - - NUMBER shift and go to state 6 - ID shift and go to state 7 - - exp3 shift and go to state 4 - exp shift and go to state 16 - exp1 shift and go to state 2 - exp2 shift and go to state 3 - assign shift and go to state 5 - call shift and go to state 8 - -state 12 - - (15) assign -> ID IGUAL . exp - (1) exp -> . exp SOMA exp1 - (2) exp -> . exp1 - (3) exp1 -> . exp1 VEZES exp2 - (4) exp1 -> . exp2 - (5) exp2 -> . exp3 POT exp - (6) exp2 -> . exp3 - (7) exp3 -> . assign - (8) exp3 -> . NUMBER - (9) exp3 -> . ID - (10) exp3 -> . call - (15) assign -> . ID IGUAL exp - (11) call -> . ID LPAREN params RPAREN - (12) call -> . ID LPAREN RPAREN - - NUMBER shift and go to state 6 - ID shift and go to state 7 - - exp shift and go to state 17 - exp1 shift and go to state 2 - exp2 shift and go to state 3 - exp3 shift and go to state 4 - assign shift and go to state 5 - call shift and go to state 8 - -state 13 - - (11) call -> ID LPAREN . params RPAREN - (12) call -> ID LPAREN . RPAREN - (13) params -> . ID COMMA params - (14) params -> . ID - - RPAREN shift and go to state 20 - ID shift and go to state 18 - - params shift and go to state 19 - -state 14 - - (1) exp -> exp SOMA exp1 . - (3) exp1 -> exp1 . VEZES exp2 - - ! shift/reduce conflict for VEZES resolved as shift - SOMA reduce using rule 1 (exp -> exp SOMA exp1 .) - $end reduce using rule 1 (exp -> exp SOMA exp1 .) - POT reduce using rule 1 (exp -> exp SOMA exp1 .) - VEZES shift and go to state 10 - - ! VEZES [ reduce using rule 1 (exp -> exp SOMA exp1 .) ] - - -state 15 - - (3) exp1 -> exp1 VEZES exp2 . - - VEZES reduce using rule 3 (exp1 -> exp1 VEZES exp2 .) - SOMA reduce using rule 3 (exp1 -> exp1 VEZES exp2 .) - $end reduce using rule 3 (exp1 -> exp1 VEZES exp2 .) - POT reduce using rule 3 (exp1 -> exp1 VEZES exp2 .) - - -state 16 - - (5) exp2 -> exp3 POT exp . - (1) exp -> exp . SOMA exp1 - - ! shift/reduce conflict for SOMA resolved as shift - VEZES reduce using rule 5 (exp2 -> exp3 POT exp .) - $end reduce using rule 5 (exp2 -> exp3 POT exp .) - POT reduce using rule 5 (exp2 -> exp3 POT exp .) - SOMA shift and go to state 9 - - ! SOMA [ reduce using rule 5 (exp2 -> exp3 POT exp .) ] - - -state 17 - - (15) assign -> ID IGUAL exp . - (1) exp -> exp . SOMA exp1 - - ! shift/reduce conflict for SOMA resolved as shift - POT reduce using rule 15 (assign -> ID IGUAL exp .) - VEZES reduce using rule 15 (assign -> ID IGUAL exp .) - $end reduce using rule 15 (assign -> ID IGUAL exp .) - SOMA shift and go to state 9 - - ! SOMA [ reduce using rule 15 (assign -> ID IGUAL exp .) ] - - -state 18 - - (13) params -> ID . COMMA params - (14) params -> ID . - - COMMA shift and go to state 21 - RPAREN reduce using rule 14 (params -> ID .) - - -state 19 - - (11) call -> ID LPAREN params . RPAREN - - RPAREN shift and go to state 22 - - -state 20 - - (12) call -> ID LPAREN RPAREN . - - POT reduce using rule 12 (call -> ID LPAREN RPAREN .) - VEZES reduce using rule 12 (call -> ID LPAREN RPAREN .) - SOMA reduce using rule 12 (call -> ID LPAREN RPAREN .) - $end reduce using rule 12 (call -> ID LPAREN RPAREN .) - - -state 21 - - (13) params -> ID COMMA . params - (13) params -> . ID COMMA params - (14) params -> . ID - - ID shift and go to state 18 - - params shift and go to state 23 - -state 22 - - (11) call -> ID LPAREN params RPAREN . - - POT reduce using rule 11 (call -> ID LPAREN params RPAREN .) - VEZES reduce using rule 11 (call -> ID LPAREN params RPAREN .) - SOMA reduce using rule 11 (call -> ID LPAREN params RPAREN .) - $end reduce using rule 11 (call -> ID LPAREN params RPAREN .) - - -state 23 - - (13) params -> ID COMMA params . - - RPAREN reduce using rule 13 (params -> ID COMMA params .) - -WARNING: -WARNING: Conflicts: -WARNING: -WARNING: shift/reduce conflict for VEZES in state 2 resolved as shift -WARNING: shift/reduce conflict for POT in state 4 resolved as shift -WARNING: shift/reduce conflict for VEZES in state 14 resolved as shift -WARNING: shift/reduce conflict for SOMA in state 16 resolved as shift -WARNING: shift/reduce conflict for SOMA in state 17 resolved as shift diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.py" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.py" deleted file mode 100644 index df4b9d7..0000000 --- "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.py" +++ /dev/null @@ -1,45 +0,0 @@ - -# parsetab.py -# This file is automatically generated. Do not edit. -# pylint: disable=W,C,R -_tabversion = '3.10' - -_lr_method = 'LALR' - -_lr_signature = 'COMMA ID IGUAL LPAREN NUMBER POT RPAREN SOMA VEZESexp : exp SOMA exp1 \n | exp1exp1 : exp1 VEZES exp2 \n | exp2exp2 : exp3 POT exp\n | exp3exp3 : assign\n | NUMBER\n | ID\n | callcall : ID LPAREN params RPAREN\n | ID LPAREN RPAREN\n params : ID COMMA params\n | IDassign : ID IGUAL exp' - -_lr_action_items = {'NUMBER':([0,9,10,11,12,],[6,6,6,6,6,]),'ID':([0,9,10,11,12,13,21,],[7,7,7,7,7,18,18,]),'$end':([1,2,3,4,5,6,7,8,14,15,16,17,20,22,],[0,-2,-4,-6,-7,-8,-9,-10,-1,-3,-5,-15,-12,-11,]),'SOMA':([1,2,3,4,5,6,7,8,14,15,16,17,20,22,],[9,-2,-4,-6,-7,-8,-9,-10,-1,-3,9,9,-12,-11,]),'VEZES':([2,3,4,5,6,7,8,14,15,16,17,20,22,],[10,-4,-6,-7,-8,-9,-10,10,-3,-5,-15,-12,-11,]),'POT':([2,3,4,5,6,7,8,14,15,16,17,20,22,],[-2,-4,11,-7,-8,-9,-10,-1,-3,-5,-15,-12,-11,]),'IGUAL':([7,],[12,]),'LPAREN':([7,],[13,]),'RPAREN':([13,18,19,23,],[20,-14,22,-13,]),'COMMA':([18,],[21,]),} - -_lr_action = {} -for _k, _v in _lr_action_items.items(): - for _x,_y in zip(_v[0],_v[1]): - if not _x in _lr_action: _lr_action[_x] = {} - _lr_action[_x][_k] = _y -del _lr_action_items - -_lr_goto_items = {'exp':([0,11,12,],[1,16,17,]),'exp1':([0,9,11,12,],[2,14,2,2,]),'exp2':([0,9,10,11,12,],[3,3,15,3,3,]),'exp3':([0,9,10,11,12,],[4,4,4,4,4,]),'assign':([0,9,10,11,12,],[5,5,5,5,5,]),'call':([0,9,10,11,12,],[8,8,8,8,8,]),'params':([13,21,],[19,23,]),} - -_lr_goto = {} -for _k, _v in _lr_goto_items.items(): - for _x, _y in zip(_v[0], _v[1]): - if not _x in _lr_goto: _lr_goto[_x] = {} - _lr_goto[_x][_k] = _y -del _lr_goto_items -_lr_productions = [ - ("S' -> exp","S'",1,None,None,None), - ('exp -> exp SOMA exp1','exp',3,'p_exp_soma','ExpressionLanguageParser.py',12), - ('exp -> exp1','exp',1,'p_exp_soma','ExpressionLanguageParser.py',13), - ('exp1 -> exp1 VEZES exp2','exp1',3,'p_exp1_vezes','ExpressionLanguageParser.py',20), - ('exp1 -> exp2','exp1',1,'p_exp1_vezes','ExpressionLanguageParser.py',21), - ('exp2 -> exp3 POT exp','exp2',3,'p_exp2_expo','ExpressionLanguageParser.py',28), - ('exp2 -> exp3','exp2',1,'p_exp2_expo','ExpressionLanguageParser.py',29), - ('exp3 -> assign','exp3',1,'p_exp3','ExpressionLanguageParser.py',36), - ('exp3 -> NUMBER','exp3',1,'p_exp3','ExpressionLanguageParser.py',37), - ('exp3 -> ID','exp3',1,'p_exp3','ExpressionLanguageParser.py',38), - ('exp3 -> call','exp3',1,'p_exp3','ExpressionLanguageParser.py',39), - ('call -> ID LPAREN params RPAREN','call',4,'p_call','ExpressionLanguageParser.py',49), - ('call -> ID LPAREN RPAREN','call',3,'p_call','ExpressionLanguageParser.py',50), - ('params -> ID COMMA params','params',3,'p_params','ExpressionLanguageParser.py',59), - ('params -> ID','params',1,'p_params','ExpressionLanguageParser.py',60), - ('assign -> ID IGUAL exp','assign',3,'p_assign','ExpressionLanguageParser.py',67), -] diff --git "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.pyc" "b/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.pyc" deleted file mode 100644 index d7c2a3a..0000000 Binary files "a/utility/Exemplos de codigos/tarefas/pr\303\241tica 1/parsetab.pyc" and /dev/null differ diff --git "a/utility/analisador sint\303\241tico - EBNF.pdf" "b/utility/analisador sint\303\241tico - EBNF.pdf" new file mode 100644 index 0000000..6de6282 Binary files /dev/null and "b/utility/analisador sint\303\241tico - EBNF.pdf" differ