plp.orientadaObjetos2.parser
Class OO2Parser

java.lang.Object
  extended by plp.orientadaObjetos2.parser.OO2Parser
All Implemented Interfaces:
OO2ParserConstants

public class OO2Parser
extends java.lang.Object
implements OO2ParserConstants

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


Field Summary
 Token jj_nt
           
 boolean lookingAhead
           
 Token token
           
 OO2ParserTokenManager token_source
           
 
Fields inherited from interface plp.orientadaObjetos2.parser.OO2ParserConstants
AND, ASSIGN, ATTRIB, BANG, BIT_AND, BIT_OR, BOOLEAN, CLASSE, COLON, COMAND_SKIP, COMMA, CONCAT, DECIMAL_LITERAL, DEFAULT, DIGIT, DO, DOT, ELSE, EOF, EQ, EXTENDS, FALSE, FORMAL_COMMENT, GE, GT, HEX_LITERAL, HOOK, IDENTIFIER, IF, INSTANCEOF, INT, INTEGER_LITERAL, LBRACE, LBRACKET, LE, LENGTH, LETTER, LPAREN, LT, MINUS, MULTI_LINE_COMMENT, NE, NEW, NOT, NULL, OCTAL_LITERAL, OR, PLUS, PRIVATE, PROC, PUBLIC, RBRACE, RBRACKET, READ, REM, RPAREN, SC_AND, SC_OR, SEMICOLON, SINGLE_LINE_COMMENT, SLASH, STAR, STRING, STRING_LITERAL, SUPER, THEN, THIS, TILDE, tokenImage, TRUE, VAR, WHILE, WRITE, XOR
 
Constructor Summary
OO2Parser(java.io.InputStream stream)
           
OO2Parser(java.io.InputStream stream, java.lang.String encoding)
           
OO2Parser(OO2ParserTokenManager tm)
           
OO2Parser(java.io.Reader stream)
           
 
Method Summary
 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 | (super).id | "("LeftExpression")".Id | Id.Id
 AcessoAtributoId PAcessoAtributoId()
          ...
 AcessoAtributoId PAcessoAtributoIdChamador()
          ...
 AcessoAtributoSuper PAcessoAtributoSuper()
          ... super.Id | (super).id
 AcessoAtributoThis PAcessoAtributoThis()
          ... this.Id | (this).id
 AtribuicaoOO2 PAtribuicao()
          Atribuicao ::= LeftExpression ":=" Expressao
 Cast PCast()
          Cast ::= LeftExpression ":=" "("idClasseCast")" Id
 ChamadaMetodoOO2 PChamadaMetodo()
          ChamadaMetodo ::= ExpressaoChamadora "."
 Comando PComando()
          Comando::= ComandoSimples | ComandoSequencial
 Sequencial PComandoSequencial()
          ComandoSequencial ::= ComandoSimples ";" Comando
 Comando PComandoSimples()
          ComandoSimples ::= Skip | ComDeclaracao | While | IfThenElse | IO | ChamadaMetodo | New | Cast | Atribuicao | "("Comando")
 ComDeclaracao PComDeclaracao()
          ComDeclaracao :: = "{" DecVariavel ";" Comando "}"
 CompostaDecVariavel PCompostaDecVariavel()
          ...
 DecClasse PDecClasse()
          DecClasse ::= "classe" Id "{" DecVariavel ";" DecProcedimento "}" | DecClasse "," DecClasse
 DecClasse PDecClasseAtomica()
          ...
 DecClasseComposta PDecClasseComposta()
          ...
 DecConstrutor PDecConstrutor()
          ...
 java.lang.String PDecModificador()
           
 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()
          ...
 NewOO2 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::=
 Super PSuper()
          ... super
 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(OO2ParserTokenManager 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 OO2ParserTokenManager token_source

token

public Token token

jj_nt

public Token jj_nt

lookingAhead

public boolean lookingAhead
Constructor Detail

OO2Parser

public OO2Parser(java.io.InputStream stream)

OO2Parser

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

OO2Parser

public OO2Parser(java.io.Reader stream)

OO2Parser

public OO2Parser(OO2ParserTokenManager 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.

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 | Cast | 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 ChamadaMetodoOO2 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 NewOO2 PNew()
                  throws ParseException
New ::= LeftExpression ":=" "new" Id

Throws:
ParseException

PCast

public final Cast PCast()
                 throws ParseException
Cast ::= LeftExpression ":=" "("idClasseCast")" Id

Throws:
ParseException

PAtribuicao

public final AtribuicaoOO2 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

PSuper

public final Super PSuper()
                   throws ParseException
... super

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 | (super).id | "("LeftExpression")".Id | Id.Id

Throws:
ParseException

PAcessoAtributoThis

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

Throws:
ParseException

PAcessoAtributoSuper

public final AcessoAtributoSuper PAcessoAtributoSuper()
                                               throws ParseException
... super.Id | (super).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 | super | 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

PDecConstrutor

public final DecConstrutor PDecConstrutor()
                                   throws ParseException
... Id "("")" "{"Comando"}"|"proc" Id "(" ListaDeclaracaoParametro ")" "{"Comando"}"

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

PDecModificador

public final java.lang.String PDecModificador()
                                       throws ParseException
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(OO2ParserTokenManager 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()