11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programa → AreaDecl AreaSubRot Principal{ CriaTS(); EnderecoLivre=0; }AreaDecl → AreaDeclVar AreaDecl | AreaDeclConst AreaDecl | ε{ Nenhuma Ação Semântica }AreaDeclVar → prVar DoisPt DeclVars{ Nenhuma Ação Semântica }DeclVars → Tipo ListaID PtVirg DeclVars’{ ListaID.Acao = DeclV ar; ListaID.T ipo = Tipo.T ipo }DeclVars’ → Tipo ListaID PtVirg DeclVars’{ ListaID.Acao = DeclV ar; ListaID.T ipo = Tipo.T ipo }DeclVars’ → ε { Nenhuma Ação Semântica }Tipo → prInt { Tipo.T ipo = Inteiro }Tipo → prFloat { Tipo.T ipo = Real }Tipo → prChar { Tipo.T ipo = Caracter }Tipo → prString { Tipo.T ipo = Cadeia }Tipo → prBool { Tipo.T ipo = Logico }ListaID → Identificador ListaID’{ ListaID’.Acao = ListaID.Acao; ListaID’.T ipo = ListaID.T ipo;if(ListaID.Acao==DeclVar){if(!InsereT S(VAR, Identificador.Lexema, ListaID.T ipo, EnderecoLivre + +)ERRO SEM 4; }else Entrada=BuscaTS(Identificador.Lexema);if(!Entrada) ERRO SEM 1 else if(Entrada.Natureza != VAR) ERRO SEM 2 }ListaID’ 1 → Virg Identificador ListaID’ 2{ ListaID’ 2 .Acao = ListaID’ 1 .Acao; ListaID’ 2 .T ipo = ListaID’ 1 .T ipo;if(ListaID’ 1 .Acao==DeclVar){if(!InsereT S(VAR, Identificador.Lexema, ListaID.T ipo, EnderecoLivre + +)ERRO SEM 4; }else Entrada=BuscaTS(Identificador.Lexema);if(!Entrada) ERRO SEM 1 else if(Entrada.Natureza != VAR) ERRO SEM 2 }ListaID’ → ε { Nenhuma Ação Semântica }AreaDeclConst → prConst DoisPt DeclConsts{ Nenhuma Ação Semântica }DeclConsts → Tipo ListaIDConst PtVirg DeclConsts’{ ListaIDConst.T ipo = Tipo.T ipo }DeclConsts’ → Tipo ListaIDConst PtVirg DeclConsts’{ ListaIDConst.T ipo = Tipo.T ipo }DeclConsts’ → ε { Nenhuma Ação Semântica }ListaIDConst → Identificador Atrib Valor ListaIDConst’{ ListaIDConst’.T ipo = ListaIDConst.T ipo;InsereT S(CONST, Identificador.Lexema, ListaIDConst.T ipo,EnderecoLivre + +, Valor.V alor) }51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!