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