plp.orientadaObjetos1.parser
Class OO1Parser

java.lang.Object
  extended by plp.orientadaObjetos1.parser.OO1Parser
All Implemented Interfaces:
OO1ParserConstants

public class OO1Parser
extends java.lang.Object
implements OO1ParserConstants

Parser para a Linguagem de Programação Orientada a Objetos


Field Summary
 Token jj_nt
           
 boolean lookingAhead
           
 Token token
           
 OO1ParserTokenManager token_source
           
 
Fields inherited from interface plp.orientadaObjetos1.parser.OO1ParserConstants
AND, ASSIGN, ATTRIB, BANG, BIT_AND, BIT_OR, BOOLEAN, CLASSE, COLON, COMAND_SKIP, COMMA, CONCAT, DECIMAL_LITERAL, DEFAULT, DIGIT, DO, DOT, ELSE, EOF, EQ, FALSE, FORMAL_COMMENT, GE, GT, HEX_LITERAL, HOOK, IDENTIFIER, IF, INT, INTEGER_LITERAL, LBRACE, LBRACKET, LE, LENGTH, LETTER, LPAREN, LT, MINUS, MULTI_LINE_COMMENT, NE, NEW, NOT, NULL, OCTAL_LITERAL, OR, PLUS, PROC, RBRACE, RBRACKET, READ, REM, RPAREN, SC_AND, SC_OR, SEMICOLON, SINGLE_LINE_COMMENT, SLASH, STAR, STRING, STRING_LITERAL, THEN, THIS, TILDE, tokenImage, TRUE, VAR, WHILE, WRITE, XOR
 
Constructor Summary
OO1Parser(java.io.InputStream stream)
           
OO1Parser(java.io.InputStream stream, java.lang.String encoding)
           
OO1Parser(OO1ParserTokenManager tm)
           
OO1Parser(java.io.Reader stream)
           
 
Method Summary
static ListaValor criaListaValor(java.util.List valores)
           
 void disable_tracing()
           
 void enable_tracing()
           
 ParseException generateParseException()
           
 Token getNextToken()
           
 Token getToken(int index)
           
static void main(java.lang.String[] args)
          Método principal que executa um dado programa que pode ser fornecido através da entrada padrão ou em um arquivo cujo nome entra como parâmetro para esse método.
 AcessoAtributo PAcessoAtributo()
          AcessoAtributo ::= this.Id | (this).id | "("LeftExpression")".Id | Id.Id
 AcessoAtributoId PAcessoAtributoId()
          ...
 AcessoAtributoId PAcessoAtributoIdChamador()
          ...
 AcessoAtributoThis PAcessoAtributoThis()
          ... this.Id | (this).id
 Atribuicao PAtribuicao()
          Atribuicao ::= LeftExpression ":=" Expressao
 ChamadaMetodo PChamadaMetodo()
          ChamadaMetodo ::= ExpressaoChamadora "."
 Comando PComando()
          Comando::= ComandoSimples | ComandoSequencial
 Sequencial PComandoSequencial()
          ComandoSequencial ::= ComandoSimples ";" Comando
 Comando PComandoSimples()
          ComandoSimples ::= Skip | ComDeclaracao | While | IfThenElse | IO | ChamadaMetodo | New | Atribuicao | "("Comando")
 ComDeclaracao PComDeclaracao()
          ComDeclaracao :: = "{" DecVariavel ";" Comando "}"
 CompostaDecVariavel PCompostaDecVariavel()
          ...
 DecClasse PDecClasse()
          DecClasse ::= "classe" Id "{" DecVariavel ";" DecProcedimento "}" | DecClasse "," DecClasse
 DecClasse PDecClasseAtomica()
          ...
 DecClasseComposta PDecClasseComposta()
          ...
 DecParametro PDecParametroAtomico()
          ...Tipo Id
 ListaDeclaracaoParametro PDecParametroComposto()
          ...
 DecProcedimento PDecProcedimento()
          DecProcedimento ::= "proc" Id "("")" "{"Comando"}" | "proc" Id "(" ListaDeclaracaoParametro ")" "{"Comando"}" | DecProcedimento "," DecProcedimento
 DecProcedimentoComposta PDecProcedimentoComposta()
          ...
 DecProcedimento PDecProcedimentoSimples()
          ...
 DecVariavel PDecVariavel()
          DecVariavel ::= Tipo Id "=" Expressao | DecVariavel "," DecVariavel | Tipo Id ":=" "new" Id | "("DecVariavel")"
 DecVariavel PDecVariavelAtomica()
          ...
 DecVariavelObjeto PDecVariavelObjeto()
          ...
 Expressao PExpBinaria()
          ExpBinaria ::= ExpUnaria ( "+" ExpUnaria | "-" ExpUnaria | "and" ExpUnaria | "or" ExpUnaria | "==" ExpUnaria | "++" Expressao)*
 Expressao PExpLength()
          ...
 Expressao PExpMenos()
          ... "-" Expressao
 Expressao PExpNot()
          ...
 Expressao PExpPrimaria()
          ExpPrimaria ::= Valor | LeftExpression | this | "("Expressao")"
 Expressao PExpressao()
          Expressao ::= ExpUnaria | ExpBinaria | ExpPrimaria
 Expressao PExpressaoChamadora()
          Uma expressao chamadora eh aquela que chama um método.
 Expressao PExpUnaria()
          ExpUnaria ::= "-" Expressao | "not" Expressao | "length" Expressao | ExpPrimaria
 Id PId()
          ...
 IfThenElse PIfThenElse()
          IfThenElse ::= "if" Expressao "then" "{" Comando "}" | "if" Expressao "then" "{" Comando "}" "else" "{" Comando "}"
 IO PIO()
          IO ::= "write" "(" Expressao ")" | "read" "(" Id ")"
 LeftExpression PLeftExpression()
          LeftExpression ::= Id | AcessoAtributo
 LeftExpression PLeftExpressionChamadora()
          LeftExpressionChamadora ::= AcessoAtributoChamador | AcessoAtributoThis | id
 ListaDeclaracaoParametro PListaDeclaracaoParametro()
          ListaDeclaracaoParametro ::= Tipo Id | Tipo Id "," ListaDeclaracaoParametro
 ListaExpressao PListaExpressao()
          ListaExpressao ::= Expressao | Expressao "," ListaExpressao
 Expressao PListaExpressaoAtomica()
          ...Expressao
 ListaExpressao PListaExpressaoComposta()
          ...
 New PNew()
          New ::= LeftExpression ":=" "new" Id
 Programa PPrograma()
          Programa ::= "{" DecClasse ";" Comando "}"
 Read PRead()
          ...
 Programa processaEntrada()
          Método chamado com o intuito de processar a entrada fornecida ao parser gerando objeto do tipo Programa.
 SimplesDecVariavel PSimplesDecVariavel()
          ...
 Skip PSkip()
          Skip::=
 This PThis()
          ... this
 Tipo PTipo()
          Tipo ::= TipoClasse | TipoPrimitivo
 Tipo PTipoClasse()
          TipoClasse ::= Id
 Tipo PTipoPrimitivo()
          TipoPrimitivo ::= "string" | "int" | "boolean"
 Valor PValor()
          Valor ::= ValorInteiro | ValorNull | ValorBooleano | ValorString
 Valor PValorBooleano()
          ...
 Valor PValorInteiro()
          ...
 ValorNull PValorNull()
          ...
 Valor PValorString()
          ...
 While PWhile()
          While ::= "while" Expressao do" "{" Comando "}"
 Write PWrite()
          ...
 void ReInit(java.io.InputStream stream)
           
 void ReInit(java.io.InputStream stream, java.lang.String encoding)
           
 void ReInit(OO1ParserTokenManager tm)
           
 void ReInit(java.io.Reader stream)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

token_source

public OO1ParserTokenManager token_source

token

public Token token

jj_nt

public Token jj_nt

lookingAhead

public boolean lookingAhead
Constructor Detail

OO1Parser

public OO1Parser(java.io.InputStream stream)

OO1Parser

public OO1Parser(java.io.InputStream stream,
                 java.lang.String encoding)

OO1Parser

public OO1Parser(java.io.Reader stream)

OO1Parser

public OO1Parser(OO1ParserTokenManager tm)
Method Detail

main

public static void main(java.lang.String[] args)
Método principal que executa um dado programa que pode ser fornecido através da entrada padrão ou em um arquivo cujo nome entra como parâmetro para esse método.

Parameters:
args - Argumentos para o método.

criaListaValor

public static ListaValor criaListaValor(java.util.List valores)

processaEntrada

public final Programa processaEntrada()
                               throws ParseException
Método chamado com o intuito de processar a entrada fornecida ao parser gerando objeto do tipo Programa.

Throws:
ParseException

PPrograma

public final Programa PPrograma()
                         throws ParseException
Programa ::= "{" DecClasse ";" Comando "}"

Throws:
ParseException

PComando

public final Comando PComando()
                       throws ParseException
Comando::= ComandoSimples | ComandoSequencial

Throws:
ParseException

PComandoSequencial

public final Sequencial PComandoSequencial()
                                    throws ParseException
ComandoSequencial ::= ComandoSimples ";" Comando

Throws:
ParseException

PComandoSimples

public final Comando PComandoSimples()
                              throws ParseException
ComandoSimples ::= Skip | ComDeclaracao | While | IfThenElse | IO | ChamadaMetodo | New | Atribuicao | "("Comando")

Throws:
ParseException

PSkip

public final Skip PSkip()
                 throws ParseException
Skip::=

Throws:
ParseException

PComDeclaracao

public final ComDeclaracao PComDeclaracao()
                                   throws ParseException
ComDeclaracao :: = "{" DecVariavel ";" Comando "}"

Throws:
ParseException

PWhile

public final While PWhile()
                   throws ParseException
While ::= "while" Expressao do" "{" Comando "}"

Throws:
ParseException

PIfThenElse

public final IfThenElse PIfThenElse()
                             throws ParseException
IfThenElse ::= "if" Expressao "then" "{" Comando "}" | "if" Expressao "then" "{" Comando "}" "else" "{" Comando "}"

Throws:
ParseException

PChamadaMetodo

public final ChamadaMetodo PChamadaMetodo()
                                   throws ParseException
ChamadaMetodo ::= ExpressaoChamadora "." Id "(" ListaExpressao ")" | ExpressaoChamadora "." Id "("")"

Throws:
ParseException

PListaExpressao

public final ListaExpressao PListaExpressao()
                                     throws ParseException
ListaExpressao ::= Expressao | Expressao "," ListaExpressao

Throws:
ParseException

PListaExpressaoComposta

public final ListaExpressao PListaExpressaoComposta()
                                             throws ParseException
... Expressao "," ListaExpressao

Throws:
ParseException

PListaExpressaoAtomica

public final Expressao PListaExpressaoAtomica()
                                       throws ParseException
...Expressao

Throws:
ParseException

PNew

public final New PNew()
               throws ParseException
New ::= LeftExpression ":=" "new" Id

Throws:
ParseException

PAtribuicao

public final Atribuicao PAtribuicao()
                             throws ParseException
Atribuicao ::= LeftExpression ":=" Expressao

Throws:
ParseException

PIO

public final IO PIO()
             throws ParseException
IO ::= "write" "(" Expressao ")" | "read" "(" Id ")"

Throws:
ParseException

PRead

public final Read PRead()
                 throws ParseException
... "read" "(" Id ")"

Throws:
ParseException

PWrite

public final Write PWrite()
                   throws ParseException
... "write" "(" Expressao ")"

Throws:
ParseException

PExpressao

public final Expressao PExpressao()
                           throws ParseException
Expressao ::= ExpUnaria | ExpBinaria | ExpPrimaria

Throws:
ParseException

PExpPrimaria

public final Expressao PExpPrimaria()
                             throws ParseException
ExpPrimaria ::= Valor | LeftExpression | this | "("Expressao")"

Throws:
ParseException

PValor

public final Valor PValor()
                   throws ParseException
Valor ::= ValorInteiro | ValorNull | ValorBooleano | ValorString

Throws:
ParseException

PValorInteiro

public final Valor PValorInteiro()
                          throws ParseException
... ValorInteiro

Throws:
ParseException

PValorNull

public final ValorNull PValorNull()
                           throws ParseException
... ValorNull

Throws:
ParseException

PValorBooleano

public final Valor PValorBooleano()
                           throws ParseException
... ValorBooleano

Throws:
ParseException

PValorString

public final Valor PValorString()
                         throws ParseException
... ValorString

Throws:
ParseException

PExpUnaria

public final Expressao PExpUnaria()
                           throws ParseException
ExpUnaria ::= "-" Expressao | "not" Expressao | "length" Expressao | ExpPrimaria

Throws:
ParseException

PExpMenos

public final Expressao PExpMenos()
                          throws ParseException
... "-" Expressao

Throws:
ParseException

PExpNot

public final Expressao PExpNot()
                        throws ParseException
... "not" Expressao

Throws:
ParseException

PExpLength

public final Expressao PExpLength()
                           throws ParseException
... "length" Expressao

Throws:
ParseException

PExpBinaria

public final Expressao PExpBinaria()
                            throws ParseException
ExpBinaria ::= ExpUnaria ( "+" ExpUnaria | "-" ExpUnaria | "and" ExpUnaria | "or" ExpUnaria | "==" ExpUnaria | "++" Expressao)*

Throws:
ParseException

PThis

public final This PThis()
                 throws ParseException
... this

Throws:
ParseException

PLeftExpression

public final LeftExpression PLeftExpression()
                                     throws ParseException
LeftExpression ::= Id | AcessoAtributo

Throws:
ParseException

PId

public final Id PId()
             throws ParseException
... Id

Throws:
ParseException

PAcessoAtributo

public final AcessoAtributo PAcessoAtributo()
                                     throws ParseException
AcessoAtributo ::= this.Id | (this).id | "("LeftExpression")".Id | Id.Id

Throws:
ParseException

PAcessoAtributoThis

public final AcessoAtributoThis PAcessoAtributoThis()
                                             throws ParseException
... this.Id | (this).id

Throws:
ParseException

PAcessoAtributoId

public final AcessoAtributoId PAcessoAtributoId()
                                         throws ParseException
... "("LeftExpression")".Id | Id.Id

Throws:
ParseException

PExpressaoChamadora

public final Expressao PExpressaoChamadora()
                                    throws ParseException
Uma expressao chamadora eh aquela que chama um método. Ela sabe separar o acesso de atributo, que é o que ela retorna, da chamada do método em si (). PExpressaoChamadora:: this | id | LeftExpressionChamadora

Throws:
ParseException

PLeftExpressionChamadora

public final LeftExpression PLeftExpressionChamadora()
                                              throws ParseException
LeftExpressionChamadora ::= AcessoAtributoChamador | AcessoAtributoThis | id

Throws:
ParseException

PAcessoAtributoIdChamador

public final AcessoAtributoId PAcessoAtributoIdChamador()
                                                 throws ParseException
... "("LeftExpressionChamadora")".Id | Id.Id

Throws:
ParseException

PDecClasse

public final DecClasse PDecClasse()
                           throws ParseException
DecClasse ::= "classe" Id "{" DecVariavel ";" DecProcedimento "}" | DecClasse "," DecClasse

Throws:
ParseException

PDecClasseAtomica

public final DecClasse PDecClasseAtomica()
                                  throws ParseException
... "classe" Id "{" DecVariavel ";" DecProcedimento "}"

Throws:
ParseException

PDecClasseComposta

public final DecClasseComposta PDecClasseComposta()
                                           throws ParseException
... DecClasse "," DecClasse

Throws:
ParseException

PDecVariavel

public final DecVariavel PDecVariavel()
                               throws ParseException
DecVariavel ::= Tipo Id "=" Expressao | DecVariavel "," DecVariavel | Tipo Id ":=" "new" Id | "("DecVariavel")"

Throws:
ParseException

PCompostaDecVariavel

public final CompostaDecVariavel PCompostaDecVariavel()
                                               throws ParseException
... DecVariavel "," DecVariavel

Throws:
ParseException

PDecVariavelAtomica

public final DecVariavel PDecVariavelAtomica()
                                      throws ParseException
... Tipo Id "=" Expressao | Tipo Id ":=" "new" Id | "("DecVariavel")"

Throws:
ParseException

PDecVariavelObjeto

public final DecVariavelObjeto PDecVariavelObjeto()
                                           throws ParseException
... Tipo Id ":=" "new" Id

Throws:
ParseException

PSimplesDecVariavel

public final SimplesDecVariavel PSimplesDecVariavel()
                                             throws ParseException
... Tipo Id "=" Expressao

Throws:
ParseException

PDecProcedimento

public final DecProcedimento PDecProcedimento()
                                       throws ParseException
DecProcedimento ::= "proc" Id "("")" "{"Comando"}" | "proc" Id "(" ListaDeclaracaoParametro ")" "{"Comando"}" | DecProcedimento "," DecProcedimento

Throws:
ParseException

PDecProcedimentoComposta

public final DecProcedimentoComposta PDecProcedimentoComposta()
                                                       throws ParseException
... DecProcedimento "," DecProcedimento

Throws:
ParseException

PDecProcedimentoSimples

public final DecProcedimento PDecProcedimentoSimples()
                                              throws ParseException
... "proc" Id "("")" "{"Comando"}"|"proc" Id "(" ListaDeclaracaoParametro ")" "{"Comando"}"

Throws:
ParseException

PListaDeclaracaoParametro

public final ListaDeclaracaoParametro PListaDeclaracaoParametro()
                                                         throws ParseException
ListaDeclaracaoParametro ::= Tipo Id | Tipo Id "," ListaDeclaracaoParametro

Throws:
ParseException

PDecParametroComposto

public final ListaDeclaracaoParametro PDecParametroComposto()
                                                     throws ParseException
... Tipo Id "," ListaDeclaracaoParametro

Throws:
ParseException

PDecParametroAtomico

public final DecParametro PDecParametroAtomico()
                                        throws ParseException
...Tipo Id

Throws:
ParseException

PTipo

public final Tipo PTipo()
                 throws ParseException
Tipo ::= TipoClasse | TipoPrimitivo

Throws:
ParseException

PTipoPrimitivo

public final Tipo PTipoPrimitivo()
                          throws ParseException
TipoPrimitivo ::= "string" | "int" | "boolean"

Throws:
ParseException

PTipoClasse

public final Tipo PTipoClasse()
                       throws ParseException
TipoClasse ::= Id

Throws:
ParseException

ReInit

public void ReInit(java.io.InputStream stream)

ReInit

public void ReInit(java.io.InputStream stream,
                   java.lang.String encoding)

ReInit

public void ReInit(java.io.Reader stream)

ReInit

public void ReInit(OO1ParserTokenManager tm)

getNextToken

public final Token getNextToken()

getToken

public final Token getToken(int index)

generateParseException

public ParseException generateParseException()

enable_tracing

public final void enable_tracing()

disable_tracing

public final void disable_tracing()