in src/mongo/grammar/mongoParser.ts [143:200]
public commands(): CommandsContext {
const _localctx: CommandsContext = new CommandsContext(this._ctx, this.state);
this.enterRule(_localctx, 2, mongoParser.RULE_commands);
let _la: number;
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 42;
this._errHandler.sync(this);
_la = this._input.LA(1);
while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << mongoParser.SingleLineComment) | (1 << mongoParser.MultiLineComment) | (1 << mongoParser.SEMICOLON) | (1 << mongoParser.DB))) !== 0)) {
{
this.state = 40;
this._errHandler.sync(this);
switch (this._input.LA(1)) {
case mongoParser.DB:
{
this.state = 37;
this.command();
}
break;
case mongoParser.SEMICOLON:
{
this.state = 38;
this.emptyCommand();
}
break;
case mongoParser.SingleLineComment:
case mongoParser.MultiLineComment:
{
this.state = 39;
this.comment();
}
break;
default:
throw new NoViableAltException(this);
}
}
this.state = 44;
this._errHandler.sync(this);
_la = this._input.LA(1);
}
}
}
catch (re) {
if (re instanceof RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}