import { ATN, DFA, FailedPredicateException, Parser, RuleContext, ParserRuleContext, TerminalNode, Token, TokenStream } from 'antlr4';
import IfcExpressionListener from "./IfcExpressionListener.js";
import IfcExpressionVisitor from "./IfcExpressionVisitor.js";
export default class IfcExpressionParser extends Parser {
    static readonly T__0 = 1;
    static readonly T__1 = 2;
    static readonly T__2 = 3;
    static readonly T__3 = 4;
    static readonly T__4 = 5;
    static readonly T__5 = 6;
    static readonly T__6 = 7;
    static readonly T__7 = 8;
    static readonly T__8 = 9;
    static readonly T__9 = 10;
    static readonly T__10 = 11;
    static readonly T__11 = 12;
    static readonly T__12 = 13;
    static readonly INT = 14;
    static readonly FLOAT = 15;
    static readonly BOOLEAN = 16;
    static readonly LOGICAL_UNKNOWN = 17;
    static readonly DOT = 18;
    static readonly QUOTED_STRING = 19;
    static readonly IDENTIFIER = 20;
    static readonly WS = 21;
    static readonly NEWLINE = 22;
    static readonly BOOLEAN_BINARY_OP = 23;
    static readonly CMP_OP = 24;
    static readonly EOF: number;
    static readonly RULE_expr = 0;
    static readonly RULE_singleExpr = 1;
    static readonly RULE_methodCallChain = 2;
    static readonly RULE_functionCall = 3;
    static readonly RULE_exprList = 4;
    static readonly RULE_arrayExpr = 5;
    static readonly RULE_arrayElementList = 6;
    static readonly RULE_literal = 7;
    static readonly RULE_numLiteral = 8;
    static readonly RULE_stringLiteral = 9;
    static readonly RULE_booleanLiteral = 10;
    static readonly RULE_logicalLiteral = 11;
    static readonly RULE_variableRef = 12;
    static readonly literalNames: (string | null)[];
    static readonly symbolicNames: (string | null)[];
    static readonly ruleNames: string[];
    get grammarFileName(): string;
    get literalNames(): (string | null)[];
    get symbolicNames(): (string | null)[];
    get ruleNames(): string[];
    get serializedATN(): number[];
    protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
    constructor(input: TokenStream);
    expr(): ExprContext;
    singleExpr(): SingleExprContext;
    singleExpr(_p: number): SingleExprContext;
    methodCallChain(): MethodCallChainContext;
    functionCall(): FunctionCallContext;
    exprList(): ExprListContext;
    arrayExpr(): ArrayExprContext;
    arrayElementList(): ArrayElementListContext;
    literal(): LiteralContext;
    numLiteral(): NumLiteralContext;
    stringLiteral(): StringLiteralContext;
    booleanLiteral(): BooleanLiteralContext;
    logicalLiteral(): LogicalLiteralContext;
    variableRef(): VariableRefContext;
    sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
    private singleExpr_sempred;
    static readonly _serializedATN: number[];
    private static __ATN;
    static get _ATN(): ATN;
    static DecisionsToDFA: DFA[];
}
export declare class ExprContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    singleExpr(): SingleExprContext;
    EOF(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SingleExprContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    get ruleIndex(): number;
    copyFrom(ctx: SingleExprContext): void;
}
export declare class SEComparisonContext extends SingleExprContext {
    _left: SingleExprContext;
    _right: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    CMP_OP(): TerminalNode;
    singleExpr_list(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SELiteralContext extends SingleExprContext {
    _sub: LiteralContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    literal(): LiteralContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEParenthesisContext extends SingleExprContext {
    _sub: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEMulDivContext extends SingleExprContext {
    _left: SingleExprContext;
    _op: Token;
    _right: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr_list(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEPowerContext extends SingleExprContext {
    _left: SingleExprContext;
    _op: Token;
    _right: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr_list(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEBooleanBinaryOpContext extends SingleExprContext {
    _left: SingleExprContext;
    _op: Token;
    _right: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr_list(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext;
    BOOLEAN_BINARY_OP(): TerminalNode;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEFunctionCallContext extends SingleExprContext {
    _sub: FunctionCallContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    functionCall(): FunctionCallContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEArrayExprContext extends SingleExprContext {
    _sub: ArrayExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    arrayExpr(): ArrayExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SENotContext extends SingleExprContext {
    _sub: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEVariableRefContext extends SingleExprContext {
    _sub: VariableRefContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    variableRef(): VariableRefContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEUnaryMultipleMinusContext extends SingleExprContext {
    _sub: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEUnaryMinusContext extends SingleExprContext {
    _sub: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEAddSubContext extends SingleExprContext {
    _left: SingleExprContext;
    _op: Token;
    _right: SingleExprContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr_list(): SingleExprContext[];
    singleExpr(i: number): SingleExprContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class SEMethodCallContext extends SingleExprContext {
    _target: SingleExprContext;
    _call: MethodCallChainContext;
    constructor(parser: IfcExpressionParser, ctx: SingleExprContext);
    singleExpr(): SingleExprContext;
    methodCallChain(): MethodCallChainContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class MethodCallChainContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    get ruleIndex(): number;
    copyFrom(ctx: MethodCallChainContext): void;
}
export declare class MethodCallChainInnerContext extends MethodCallChainContext {
    _target: FunctionCallContext;
    _call: MethodCallChainContext;
    constructor(parser: IfcExpressionParser, ctx: MethodCallChainContext);
    DOT(): TerminalNode;
    functionCall(): FunctionCallContext;
    methodCallChain(): MethodCallChainContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class MethodCallChainEndContext extends MethodCallChainContext {
    _call: FunctionCallContext;
    constructor(parser: IfcExpressionParser, ctx: MethodCallChainContext);
    DOT(): TerminalNode;
    functionCall(): FunctionCallContext;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class FunctionCallContext extends ParserRuleContext {
    _sub: ExprListContext;
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    IDENTIFIER(): TerminalNode;
    exprList(): ExprListContext;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class ExprListContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    singleExpr(): SingleExprContext;
    exprList(): ExprListContext;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class ArrayExprContext extends ParserRuleContext {
    _sub: ArrayElementListContext;
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    arrayElementList(): ArrayElementListContext;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class ArrayElementListContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    singleExpr(): SingleExprContext;
    arrayElementList(): ArrayElementListContext;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class LiteralContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    numLiteral(): NumLiteralContext;
    stringLiteral(): StringLiteralContext;
    booleanLiteral(): BooleanLiteralContext;
    logicalLiteral(): LogicalLiteralContext;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class NumLiteralContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    INT(): TerminalNode;
    FLOAT(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class StringLiteralContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    QUOTED_STRING(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class BooleanLiteralContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    BOOLEAN(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class LogicalLiteralContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    LOGICAL_UNKNOWN(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
export declare class VariableRefContext extends ParserRuleContext {
    constructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number);
    IDENTIFIER(): TerminalNode;
    get ruleIndex(): number;
    enterRule(listener: IfcExpressionListener): void;
    exitRule(listener: IfcExpressionListener): void;
    accept<Result>(visitor: IfcExpressionVisitor<Result>): Result;
}
