// Generated from grammar/ivprog.g4 by ANTLR 4.7.1 // jshint ignore: start var antlr4 = require('antlr4/index'); var ivprogListener = require('./ivprogListener').ivprogListener; import {ASA, NoGlobal} from '../js/asa'; var grammarFileName = "ivprog.g4"; var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0003&S\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004\t\u0004", "\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007\u0004\b", "\t\b\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003", "\u0003\u0003\u0003\u0003\u0003\u0007\u0003\u0019\n\u0003\f\u0003\u000e", "\u0003\u001c\u000b\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004", "\u0003\u0004\u0003\u0005\u0005\u0005$\n\u0005\u0003\u0005\u0003\u0005", "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", "\u0007\u0005.\n\u0005\f\u0005\u000e\u00051\u000b\u0005\u0003\u0006\u0003", "\u0006\u0003\u0006\u0005\u00066\n\u0006\u0003\u0006\u0003\u0006\u0003", "\u0006\u0005\u0006;\n\u0006\u0003\u0006\u0005\u0006>\n\u0006\u0005\u0006", "@\n\u0006\u0003\u0006\u0003\u0006\u0005\u0006D\n\u0006\u0003\u0006\u0003", "\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0005", "\u0007M\n\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0002", "\u0002\t\u0002\u0004\u0006\b\n\f\u000e\u0002\u0003\u0004\u0002!!##\u0002", "W\u0002\u0010\u0003\u0002\u0002\u0002\u0004\u0014\u0003\u0002\u0002", "\u0002\u0006\u001f\u0003\u0002\u0002\u0002\b#\u0003\u0002\u0002\u0002", "\n2\u0003\u0002\u0002\u0002\fL\u0003\u0002\u0002\u0002\u000eP\u0003", "\u0002\u0002\u0002\u0010\u0011\u0005\u0004\u0003\u0002\u0011\u0012\u0007", "\u0002\u0002\u0003\u0012\u0013\b\u0002\u0001\u0002\u0013\u0003\u0003", "\u0002\u0002\u0002\u0014\u0015\u0007\t\u0002\u0002\u0015\u0016\u0007", "\u0003\u0002\u0002\u0016\u001a\b\u0003\u0001\u0002\u0017\u0019\u0005", "\u0006\u0004\u0002\u0018\u0017\u0003\u0002\u0002\u0002\u0019\u001c\u0003", "\u0002\u0002\u0002\u001a\u0018\u0003\u0002\u0002\u0002\u001a\u001b\u0003", "\u0002\u0002\u0002\u001b\u001d\u0003\u0002\u0002\u0002\u001c\u001a\u0003", "\u0002\u0002\u0002\u001d\u001e\u0007\u0004\u0002\u0002\u001e\u0005\u0003", "\u0002\u0002\u0002\u001f \u0005\b\u0005\u0002 !\b\u0004\u0001\u0002", "!\u0007\u0003\u0002\u0002\u0002\"$\u0007\u0013\u0002\u0002#\"\u0003", "\u0002\u0002\u0002#$\u0003\u0002\u0002\u0002$%\u0003\u0002\u0002\u0002", "%&\u0005\f\u0007\u0002&\'\u0005\n\u0006\u0002\'(\b\u0005\u0001\u0002", "(/\u0003\u0002\u0002\u0002)*\u0007\u0005\u0002\u0002*+\u0005\n\u0006", "\u0002+,\b\u0005\u0001\u0002,.\u0003\u0002\u0002\u0002-)\u0003\u0002", "\u0002\u0002.1\u0003\u0002\u0002\u0002/-\u0003\u0002\u0002\u0002/0\u0003", "\u0002\u0002\u00020\t\u0003\u0002\u0002\u00021/\u0003\u0002\u0002\u0002", "2?\u0007\u001f\u0002\u000235\u0007\u0006\u0002\u000246\u0005\u000e\b", "\u000254\u0003\u0002\u0002\u000256\u0003\u0002\u0002\u000267\u0003\u0002", "\u0002\u00027=\u0007\u0007\u0002\u00028:\u0007\u0006\u0002\u00029;\u0005", "\u000e\b\u0002:9\u0003\u0002\u0002\u0002:;\u0003\u0002\u0002\u0002;", "<\u0003\u0002\u0002\u0002<>\u0007\u0007\u0002\u0002=8\u0003\u0002\u0002", "\u0002=>\u0003\u0002\u0002\u0002>@\u0003\u0002\u0002\u0002?3\u0003\u0002", "\u0002\u0002?@\u0003\u0002\u0002\u0002@C\u0003\u0002\u0002\u0002AB\u0007", "\b\u0002\u0002BD\u0005\u000e\b\u0002CA\u0003\u0002\u0002\u0002CD\u0003", "\u0002\u0002\u0002DE\u0003\u0002\u0002\u0002EF\b\u0006\u0001\u0002F", "\u000b\u0003\u0002\u0002\u0002GM\u0007\u000e\u0002\u0002HM\u0007\n\u0002", "\u0002IM\u0007\u000f\u0002\u0002JM\u0007\r\u0002\u0002KM\u0007\f\u0002", "\u0002LG\u0003\u0002\u0002\u0002LH\u0003\u0002\u0002\u0002LI\u0003\u0002", "\u0002\u0002LJ\u0003\u0002\u0002\u0002LK\u0003\u0002\u0002\u0002MN\u0003", "\u0002\u0002\u0002NO\b\u0007\u0001\u0002O\r\u0003\u0002\u0002\u0002", "PQ\t\u0002\u0002\u0002Q\u000f\u0003\u0002\u0002\u0002\u000b\u001a#/", "5:=?CL"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); var sharedContextCache = new antlr4.PredictionContextCache(); var literalNames = [ null, "'{'", "'}'", "','", "'['", "']'", "'='", "'programa'", "'real'", "'vazio'", "'logico'", "'cadeia'", "'inteiro'", "'caracter'", "'escolha'", "'caso'", "'contrario'", "'const'", "'funcao'", "'retorne'", "'para'", "'pare'", "'faca'", "'enquanto'", "'se'", "'senao'", null, "'nao'" ]; var symbolicNames = [ null, null, null, null, null, null, null, "PR_PROGRAMA", "PR_REAL", "PR_VAZIO", "PR_LOGICO", "PR_CADEIA", "PR_INTEIRO", "PR_CARACTER", "PR_ESCOLHA", "PR_CASO", "PR_CONTRARIO", "PR_CONST", "PR_FUNCAO", "PR_RETORNE", "PR_PARA", "PR_PARE", "PR_FACA", "PR_ENQUANTO", "PR_SE", "PR_SENAO", "GAMBIARRA", "OPERADOR_NAO", "LOGICO", "ID", "ID_BIBLIOTECA", "INTEIRO", "REAL", "CADEIA", "CARACTER", "ESPACO", "COMENTARIO" ]; var ruleNames = [ "parse", "programa", "declaracoesGlobais", "listaDeclaracoes", "declaracao", "declaracaoTipoDado", "expressao" ]; function ivprogParser (input) { antlr4.Parser.call(this, input); this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); this.ruleNames = ruleNames; this.literalNames = literalNames; this.symbolicNames = symbolicNames; this.criarTrechoCodigoFonte = function(tokenAntlr) { if (tokenAntlr != null) { const linha = tokenAntlr.getLine(); const coluna = tokenAntlr.getCharPositionInLine(); const tamanhoTexto = tokenAntlr.getText().length(); return {linha: linha, coluna: coluna, tamanhoTexto: tamanhoTexto}; } return null; } return this; } ivprogParser.prototype = Object.create(antlr4.Parser.prototype); ivprogParser.prototype.constructor = ivprogParser; Object.defineProperty(ivprogParser.prototype, "atn", { get : function() { return atn; } }); ivprogParser.EOF = antlr4.Token.EOF; ivprogParser.T__0 = 1; ivprogParser.T__1 = 2; ivprogParser.T__2 = 3; ivprogParser.T__3 = 4; ivprogParser.T__4 = 5; ivprogParser.T__5 = 6; ivprogParser.PR_PROGRAMA = 7; ivprogParser.PR_REAL = 8; ivprogParser.PR_VAZIO = 9; ivprogParser.PR_LOGICO = 10; ivprogParser.PR_CADEIA = 11; ivprogParser.PR_INTEIRO = 12; ivprogParser.PR_CARACTER = 13; ivprogParser.PR_ESCOLHA = 14; ivprogParser.PR_CASO = 15; ivprogParser.PR_CONTRARIO = 16; ivprogParser.PR_CONST = 17; ivprogParser.PR_FUNCAO = 18; ivprogParser.PR_RETORNE = 19; ivprogParser.PR_PARA = 20; ivprogParser.PR_PARE = 21; ivprogParser.PR_FACA = 22; ivprogParser.PR_ENQUANTO = 23; ivprogParser.PR_SE = 24; ivprogParser.PR_SENAO = 25; ivprogParser.GAMBIARRA = 26; ivprogParser.OPERADOR_NAO = 27; ivprogParser.LOGICO = 28; ivprogParser.ID = 29; ivprogParser.ID_BIBLIOTECA = 30; ivprogParser.INTEIRO = 31; ivprogParser.REAL = 32; ivprogParser.CADEIA = 33; ivprogParser.CARACTER = 34; ivprogParser.ESPACO = 35; ivprogParser.COMENTARIO = 36; ivprogParser.RULE_parse = 0; ivprogParser.RULE_programa = 1; ivprogParser.RULE_declaracoesGlobais = 2; ivprogParser.RULE_listaDeclaracoes = 3; ivprogParser.RULE_declaracao = 4; ivprogParser.RULE_declaracaoTipoDado = 5; ivprogParser.RULE_expressao = 6; function ParseContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_parse; this.asa = null this.prog = null; // ProgramaContext return this; } ParseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ParseContext.prototype.constructor = ParseContext; ParseContext.prototype.EOF = function() { return this.getToken(ivprogParser.EOF, 0); }; ParseContext.prototype.programa = function() { return this.getTypedRuleContext(ProgramaContext,0); }; ParseContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterParse(this); } }; ParseContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitParse(this); } }; ivprogParser.ParseContext = ParseContext; ivprogParser.prototype.parse = function() { var localctx = new ParseContext(this, this._ctx, this.state); this.enterRule(localctx, 0, ivprogParser.RULE_parse); try { this.enterOuterAlt(localctx, 1); this.state = 14; localctx.prog = this.programa(); this.state = 15; this.match(ivprogParser.EOF); localctx.asa = localctx.prog.asa } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ProgramaContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_programa; this.asa = null return this; } ProgramaContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ProgramaContext.prototype.constructor = ProgramaContext; ProgramaContext.prototype.PR_PROGRAMA = function() { return this.getToken(ivprogParser.PR_PROGRAMA, 0); }; ProgramaContext.prototype.declaracoesGlobais = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DeclaracoesGlobaisContext); } else { return this.getTypedRuleContext(DeclaracoesGlobaisContext,i); } }; ProgramaContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterPrograma(this); } }; ProgramaContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitPrograma(this); } }; ivprogParser.ProgramaContext = ProgramaContext; ivprogParser.prototype.programa = function() { var localctx = new ProgramaContext(this, this._ctx, this.state); this.enterRule(localctx, 2, ivprogParser.RULE_programa); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 18; this.match(ivprogParser.PR_PROGRAMA); this.state = 19; this.match(ivprogParser.T__0); localctx.asa = new ASA() this.state = 24; this._errHandler.sync(this); _la = this._input.LA(1); while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << ivprogParser.PR_REAL) | (1 << ivprogParser.PR_LOGICO) | (1 << ivprogParser.PR_CADEIA) | (1 << ivprogParser.PR_INTEIRO) | (1 << ivprogParser.PR_CARACTER) | (1 << ivprogParser.PR_CONST))) !== 0)) { this.state = 21; this.declaracoesGlobais(localctx.asa); this.state = 26; this._errHandler.sync(this); _la = this._input.LA(1); } this.state = 27; this.match(ivprogParser.T__1); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DeclaracoesGlobaisContext(parser, parent, invokingState, asa) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_declaracoesGlobais; this.asa = null this.vList = null; // ListaDeclaracoesContext this.asa = asa || null; return this; } DeclaracoesGlobaisContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DeclaracoesGlobaisContext.prototype.constructor = DeclaracoesGlobaisContext; DeclaracoesGlobaisContext.prototype.listaDeclaracoes = function() { return this.getTypedRuleContext(ListaDeclaracoesContext,0); }; DeclaracoesGlobaisContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterDeclaracoesGlobais(this); } }; DeclaracoesGlobaisContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitDeclaracoesGlobais(this); } }; ivprogParser.DeclaracoesGlobaisContext = DeclaracoesGlobaisContext; ivprogParser.prototype.declaracoesGlobais = function(asa) { var localctx = new DeclaracoesGlobaisContext(this, this._ctx, this.state, asa); this.enterRule(localctx, 4, ivprogParser.RULE_declaracoesGlobais); try { this.enterOuterAlt(localctx, 1); this.state = 29; localctx.vList = this.listaDeclaracoes(); if (localctx.asa != null) { this.globais = new NoGlobal(); localctx.vList.lista.forEach( v => this.globais.addDeclaracao(v)); localctx.asa.nos.push(localctx.vList.lista); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ListaDeclaracoesContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_listaDeclaracoes; this.lista = null this.tokenConst = null; // Token this.informacaoTipoDado = null; // DeclaracaoTipoDadoContext this.vDeclaracao = null; // DeclaracaoContext return this; } ListaDeclaracoesContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ListaDeclaracoesContext.prototype.constructor = ListaDeclaracoesContext; ListaDeclaracoesContext.prototype.declaracaoTipoDado = function() { return this.getTypedRuleContext(DeclaracaoTipoDadoContext,0); }; ListaDeclaracoesContext.prototype.declaracao = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(DeclaracaoContext); } else { return this.getTypedRuleContext(DeclaracaoContext,i); } }; ListaDeclaracoesContext.prototype.PR_CONST = function() { return this.getToken(ivprogParser.PR_CONST, 0); }; ListaDeclaracoesContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterListaDeclaracoes(this); } }; ListaDeclaracoesContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitListaDeclaracoes(this); } }; ivprogParser.ListaDeclaracoesContext = ListaDeclaracoesContext; ivprogParser.prototype.listaDeclaracoes = function() { var localctx = new ListaDeclaracoesContext(this, this._ctx, this.state); this.enterRule(localctx, 6, ivprogParser.RULE_listaDeclaracoes); localctx.lista = [] var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 33; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.PR_CONST) { this.state = 32; localctx.tokenConst = this.match(ivprogParser.PR_CONST); } this.state = 35; localctx.informacaoTipoDado = this.declaracaoTipoDado(); this.state = 36; localctx.vDeclaracao = this.declaracao(localctx.tokenConst, localctx.informacaoTipoDado.informacaoTipoDado); if(localctx.vDeclaracao) { localctx.lista.push(localctx.vDeclaracao.rDeclaracao); } localctx.vDeclaracao = null; this.state = 45; this._errHandler.sync(this); _la = this._input.LA(1); while(_la===ivprogParser.T__2) { this.state = 39; this.match(ivprogParser.T__2); this.state = 40; localctx.vDeclaracao = this.declaracao(localctx.tokenConst, localctx.informacaoTipoDado.informacaoTipoDado); if(localctx.vDeclaracao) { localctx.lista.push(localctx.vDeclaracao.rDeclaracao); } localctx.vDeclaracao = null; this.state = 47; this._errHandler.sync(this); _la = this._input.LA(1); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DeclaracaoContext(parser, parent, invokingState, tokenConst, informacaoTipoDado) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_declaracao; this.tokenConst = null this.informacaoTipoDado = null this.rDeclaracao = null this._ID = null; // Token this.tk1 = null; // Token this.ind1 = null; // ExpressaoContext this.tk2 = null; // Token this.ind2 = null; // ExpressaoContext this.inicializacao = null; // ExpressaoContext this.tokenConst = tokenConst || null; this.informacaoTipoDado = informacaoTipoDado || null; return this; } DeclaracaoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DeclaracaoContext.prototype.constructor = DeclaracaoContext; DeclaracaoContext.prototype.ID = function() { return this.getToken(ivprogParser.ID, 0); }; DeclaracaoContext.prototype.expressao = function(i) { if(i===undefined) { i = null; } if(i===null) { return this.getTypedRuleContexts(ExpressaoContext); } else { return this.getTypedRuleContext(ExpressaoContext,i); } }; DeclaracaoContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterDeclaracao(this); } }; DeclaracaoContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitDeclaracao(this); } }; ivprogParser.DeclaracaoContext = DeclaracaoContext; ivprogParser.prototype.declaracao = function(tokenConst, informacaoTipoDado) { var localctx = new DeclaracaoContext(this, this._ctx, this.state, tokenConst, informacaoTipoDado); this.enterRule(localctx, 8, ivprogParser.RULE_declaracao); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 48; localctx._ID = this.match(ivprogParser.ID); this.state = 61; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.T__3) { this.state = 49; localctx.tk1 = this.match(ivprogParser.T__3); this.state = 51; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.INTEIRO || _la===ivprogParser.CADEIA) { this.state = 50; localctx.ind1 = this.expressao(); } this.state = 53; this.match(ivprogParser.T__4); this.state = 59; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.T__3) { this.state = 54; localctx.tk2 = this.match(ivprogParser.T__3); this.state = 56; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.INTEIRO || _la===ivprogParser.CADEIA) { this.state = 55; localctx.ind2 = this.expressao(); } this.state = 58; this.match(ivprogParser.T__4); } } this.state = 65; this._errHandler.sync(this); _la = this._input.LA(1); if(_la===ivprogParser.T__5) { this.state = 63; this.match(ivprogParser.T__5); this.state = 64; localctx.inicializacao = this.expressao(); } const constante = (localctx.tokenConst != null); const tipoDado = (localctx.informacaoTipoDado != null)? localctx.informacaoTipoDado.tipoDado : null; const nome = (localctx._ID != null)? (localctx._ID===null ? null : localctx._ID.text) : null; if ((localctx.tk1 == null) && (localctx.tk2 == null)) localctx.rDeclaracao = new NoDeclaracaoVariavel(nome, tipoDado, constante) else if ((localctx.tk1 != null) && (localctx.tk2 == null)) localctx.rDeclaracao = new NoDeclaracaoVetor(nome, tipoDado, (localctx.ind1===null ? null : this._input.getText(new antlr4.Interval(localctx.ind1.start,localctx.ind1.stop))), constante) else if ((localctx.tk1 != null) && (localctx.tk2 != null)) localctx.rDeclaracao = new NoDeclaracaoMatriz(nome, tipoDado, (localctx.ind1===null ? null : this._input.getText(new antlr4.Interval(localctx.ind1.start,localctx.ind1.stop))), (localctx.ind2===null ? null : this._input.getText(new antlr4.Interval(localctx.ind2.start,localctx.ind2.stop))), constante) localctx.rDeclaracao.setInicializacao(inicializacao); localctx.rDeclaracao.setTrechoCodigoFonteNome(criarTrechoCodigoFonte(localctx._ID)); localctx.rDeclaracao.setTrechoCodigoFonteTipoDado((localctx.informacaoTipoDado != null)? localctx.informacaoTipoDado.getTrechoCodigoFonte(): null); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function DeclaracaoTipoDadoContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_declaracaoTipoDado; this.informacaoTipoDado = null this.tokenTipoDado = null; // Token return this; } DeclaracaoTipoDadoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DeclaracaoTipoDadoContext.prototype.constructor = DeclaracaoTipoDadoContext; DeclaracaoTipoDadoContext.prototype.PR_INTEIRO = function() { return this.getToken(ivprogParser.PR_INTEIRO, 0); }; DeclaracaoTipoDadoContext.prototype.PR_REAL = function() { return this.getToken(ivprogParser.PR_REAL, 0); }; DeclaracaoTipoDadoContext.prototype.PR_CARACTER = function() { return this.getToken(ivprogParser.PR_CARACTER, 0); }; DeclaracaoTipoDadoContext.prototype.PR_CADEIA = function() { return this.getToken(ivprogParser.PR_CADEIA, 0); }; DeclaracaoTipoDadoContext.prototype.PR_LOGICO = function() { return this.getToken(ivprogParser.PR_LOGICO, 0); }; DeclaracaoTipoDadoContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterDeclaracaoTipoDado(this); } }; DeclaracaoTipoDadoContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitDeclaracaoTipoDado(this); } }; ivprogParser.DeclaracaoTipoDadoContext = DeclaracaoTipoDadoContext; ivprogParser.prototype.declaracaoTipoDado = function() { var localctx = new DeclaracaoTipoDadoContext(this, this._ctx, this.state); this.enterRule(localctx, 10, ivprogParser.RULE_declaracaoTipoDado); try { this.enterOuterAlt(localctx, 1); this.state = 74; this._errHandler.sync(this); switch(this._input.LA(1)) { case ivprogParser.PR_INTEIRO: this.state = 69; localctx.tokenTipoDado = this.match(ivprogParser.PR_INTEIRO); break; case ivprogParser.PR_REAL: this.state = 70; localctx.tokenTipoDado = this.match(ivprogParser.PR_REAL); break; case ivprogParser.PR_CARACTER: this.state = 71; localctx.tokenTipoDado = this.match(ivprogParser.PR_CARACTER); break; case ivprogParser.PR_CADEIA: this.state = 72; localctx.tokenTipoDado = this.match(ivprogParser.PR_CADEIA); break; case ivprogParser.PR_LOGICO: this.state = 73; localctx.tokenTipoDado = this.match(ivprogParser.PR_LOGICO); break; default: throw new antlr4.error.NoViableAltException(this); } localctx.informacaoTipoDado = new InformacaoTipoDado() localctx.informacaoTipoDado.setTipoDado(localctx.tokenTipoDado); localctx.informacaoTipoDado.setTrechoCodigoFonte(criarTrechoCodigoFonte(localctx.tokenTipoDado)); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; function ExpressaoContext(parser, parent, invokingState) { if(parent===undefined) { parent = null; } if(invokingState===undefined || invokingState===null) { invokingState = -1; } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; this.ruleIndex = ivprogParser.RULE_expressao; return this; } ExpressaoContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ExpressaoContext.prototype.constructor = ExpressaoContext; ExpressaoContext.prototype.INTEIRO = function() { return this.getToken(ivprogParser.INTEIRO, 0); }; ExpressaoContext.prototype.CADEIA = function() { return this.getToken(ivprogParser.CADEIA, 0); }; ExpressaoContext.prototype.enterRule = function(listener) { if(listener instanceof ivprogListener ) { listener.enterExpressao(this); } }; ExpressaoContext.prototype.exitRule = function(listener) { if(listener instanceof ivprogListener ) { listener.exitExpressao(this); } }; ivprogParser.ExpressaoContext = ExpressaoContext; ivprogParser.prototype.expressao = function() { var localctx = new ExpressaoContext(this, this._ctx, this.state); this.enterRule(localctx, 12, ivprogParser.RULE_expressao); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 78; _la = this._input.LA(1); if(!(_la===ivprogParser.INTEIRO || _la===ivprogParser.CADEIA)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return localctx; }; exports.ivprogParser = ivprogParser;