floatLiteral()

in backend/src/tools/AgtypeParser.js [401:453]


    floatLiteral() {
        let localctx = new FloatLiteralContext(this, this._ctx, this.state);
        this.enterRule(localctx, 14, AgtypeParser.RULE_floatLiteral);
        var _la = 0; // Token type
        try {
            this.state = 77;
            this._errHandler.sync(this);
            switch (this._input.LA(1)) {
                case AgtypeParser.RegularFloat:
                    this.enterOuterAlt(localctx, 1);
                    this.state = 70;
                    this.match(AgtypeParser.RegularFloat);
                    break;
                case AgtypeParser.ExponentFloat:
                    this.enterOuterAlt(localctx, 2);
                    this.state = 71;
                    this.match(AgtypeParser.ExponentFloat);
                    break;
                case AgtypeParser.T__10:
                case AgtypeParser.T__11:
                    this.enterOuterAlt(localctx, 3);
                    this.state = 73;
                    this._errHandler.sync(this);
                    _la = this._input.LA(1);
                    if (_la === AgtypeParser.T__10) {
                        this.state = 72;
                        this.match(AgtypeParser.T__10);
                    }

                    this.state = 75;
                    this.match(AgtypeParser.T__11);
                    break;
                case AgtypeParser.T__12:
                    this.enterOuterAlt(localctx, 4);
                    this.state = 76;
                    this.match(AgtypeParser.T__12);
                    break;
                default:
                    throw new antlr4.error.NoViableAltException(this);
            }
        } 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;
    }