@openfga/syntax-transformer
Version:
Javascript implementation of ANTLR Grammar for the OpenFGA DSL and parser from and to the OpenFGA JSON Syntax
515 lines (514 loc) • 22.5 kB
TypeScript
import { ATN, DFA, FailedPredicateException, Parser, ParserRuleContext, TerminalNode, Token, TokenStream } from 'antlr4';
import OpenFGAParserListener from "./OpenFGAParserListener.js";
export default class OpenFGAParser extends Parser {
static readonly COLON = 1;
static readonly COMMA = 2;
static readonly LESS = 3;
static readonly GREATER = 4;
static readonly LBRACKET = 5;
static readonly RBRACKET = 6;
static readonly LPAREN = 7;
static readonly RPAREN = 8;
static readonly WHITESPACE = 9;
static readonly IDENTIFIER = 10;
static readonly HASH = 11;
static readonly AND = 12;
static readonly OR = 13;
static readonly BUT_NOT = 14;
static readonly FROM = 15;
static readonly MODULE = 16;
static readonly MODEL = 17;
static readonly SCHEMA = 18;
static readonly SCHEMA_VERSION = 19;
static readonly EXTEND = 20;
static readonly TYPE = 21;
static readonly CONDITION = 22;
static readonly RELATIONS = 23;
static readonly RELATION = 24;
static readonly DEFINE = 25;
static readonly KEYWORD_WITH = 26;
static readonly EQUALS = 27;
static readonly NOT_EQUALS = 28;
static readonly IN = 29;
static readonly LESS_EQUALS = 30;
static readonly GREATER_EQUALS = 31;
static readonly LOGICAL_AND = 32;
static readonly LOGICAL_OR = 33;
static readonly RPRACKET = 34;
static readonly LBRACE = 35;
static readonly RBRACE = 36;
static readonly DOT = 37;
static readonly MINUS = 38;
static readonly EXCLAM = 39;
static readonly QUESTIONMARK = 40;
static readonly PLUS = 41;
static readonly STAR = 42;
static readonly SLASH = 43;
static readonly PERCENT = 44;
static readonly CEL_TRUE = 45;
static readonly CEL_FALSE = 46;
static readonly NUL = 47;
static readonly CEL_COMMENT = 48;
static readonly NUM_FLOAT = 49;
static readonly NUM_INT = 50;
static readonly NUM_UINT = 51;
static readonly STRING = 52;
static readonly BYTES = 53;
static readonly EXTENDED_IDENTIFIER = 54;
static readonly NEWLINE = 55;
static readonly CONDITION_PARAM_CONTAINER = 56;
static readonly CONDITION_PARAM_TYPE = 57;
static readonly EOF: number;
static readonly RULE_main = 0;
static readonly RULE_modelHeader = 1;
static readonly RULE_moduleHeader = 2;
static readonly RULE_typeDefs = 3;
static readonly RULE_typeDef = 4;
static readonly RULE_relationDeclaration = 5;
static readonly RULE_relationName = 6;
static readonly RULE_relationDef = 7;
static readonly RULE_relationDefNoDirect = 8;
static readonly RULE_relationDefPartials = 9;
static readonly RULE_relationDefGrouping = 10;
static readonly RULE_relationRecurse = 11;
static readonly RULE_relationRecurseNoDirect = 12;
static readonly RULE_relationDefDirectAssignment = 13;
static readonly RULE_relationDefRewrite = 14;
static readonly RULE_relationDefTypeRestriction = 15;
static readonly RULE_relationDefTypeRestrictionBase = 16;
static readonly RULE_conditions = 17;
static readonly RULE_condition = 18;
static readonly RULE_conditionName = 19;
static readonly RULE_conditionParameter = 20;
static readonly RULE_parameterName = 21;
static readonly RULE_parameterType = 22;
static readonly RULE_multiLineComment = 23;
static readonly RULE_identifier = 24;
static readonly RULE_extended_identifier = 25;
static readonly RULE_conditionExpression = 26;
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);
main(): MainContext;
modelHeader(): ModelHeaderContext;
moduleHeader(): ModuleHeaderContext;
typeDefs(): TypeDefsContext;
typeDef(): TypeDefContext;
relationDeclaration(): RelationDeclarationContext;
relationName(): RelationNameContext;
relationDef(): RelationDefContext;
relationDefNoDirect(): RelationDefNoDirectContext;
relationDefPartials(): RelationDefPartialsContext;
relationDefGrouping(): RelationDefGroupingContext;
relationRecurse(): RelationRecurseContext;
relationRecurseNoDirect(): RelationRecurseNoDirectContext;
relationDefDirectAssignment(): RelationDefDirectAssignmentContext;
relationDefRewrite(): RelationDefRewriteContext;
relationDefTypeRestriction(): RelationDefTypeRestrictionContext;
relationDefTypeRestrictionBase(): RelationDefTypeRestrictionBaseContext;
conditions(): ConditionsContext;
condition(): ConditionContext;
conditionName(): ConditionNameContext;
conditionParameter(): ConditionParameterContext;
parameterName(): ParameterNameContext;
parameterType(): ParameterTypeContext;
multiLineComment(): MultiLineCommentContext;
identifier(): IdentifierContext;
extended_identifier(): Extended_identifierContext;
conditionExpression(): ConditionExpressionContext;
static readonly _serializedATN: number[];
private static __ATN;
static get _ATN(): ATN;
static DecisionsToDFA: DFA[];
}
export declare class MainContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
typeDefs(): TypeDefsContext;
conditions(): ConditionsContext;
EOF(): TerminalNode;
modelHeader(): ModelHeaderContext;
moduleHeader(): ModuleHeaderContext;
WHITESPACE(): TerminalNode;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ModelHeaderContext extends ParserRuleContext {
_schemaVersion: Token;
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
MODEL(): TerminalNode;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
SCHEMA(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
SCHEMA_VERSION(): TerminalNode;
multiLineComment(): MultiLineCommentContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ModuleHeaderContext extends ParserRuleContext {
_moduleName: IdentifierContext;
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
MODULE(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
identifier(): IdentifierContext;
multiLineComment(): MultiLineCommentContext;
NEWLINE(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class TypeDefsContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
typeDef_list(): TypeDefContext[];
typeDef(i: number): TypeDefContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class TypeDefContext extends ParserRuleContext {
_typeName: Extended_identifierContext;
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
TYPE(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
extended_identifier(): Extended_identifierContext;
multiLineComment(): MultiLineCommentContext;
EXTEND(): TerminalNode;
RELATIONS(): TerminalNode;
relationDeclaration_list(): RelationDeclarationContext[];
relationDeclaration(i: number): RelationDeclarationContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDeclarationContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
DEFINE(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
relationName(): RelationNameContext;
COLON(): TerminalNode;
relationDef(): RelationDefContext;
multiLineComment(): MultiLineCommentContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationNameContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
extended_identifier(): Extended_identifierContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
relationDefDirectAssignment(): RelationDefDirectAssignmentContext;
relationDefGrouping(): RelationDefGroupingContext;
relationRecurse(): RelationRecurseContext;
relationDefPartials(): RelationDefPartialsContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefNoDirectContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
relationDefGrouping(): RelationDefGroupingContext;
relationRecurseNoDirect(): RelationRecurseNoDirectContext;
relationDefPartials(): RelationDefPartialsContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefPartialsContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
OR_list(): TerminalNode[];
OR(i: number): TerminalNode;
relationDefGrouping_list(): RelationDefGroupingContext[];
relationDefGrouping(i: number): RelationDefGroupingContext;
relationRecurseNoDirect_list(): RelationRecurseNoDirectContext[];
relationRecurseNoDirect(i: number): RelationRecurseNoDirectContext;
AND_list(): TerminalNode[];
AND(i: number): TerminalNode;
BUT_NOT(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefGroupingContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
relationDefRewrite(): RelationDefRewriteContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationRecurseContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
LPAREN(): TerminalNode;
RPAREN(): TerminalNode;
relationDef(): RelationDefContext;
relationRecurseNoDirect(): RelationRecurseNoDirectContext;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationRecurseNoDirectContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
LPAREN(): TerminalNode;
RPAREN(): TerminalNode;
relationDefNoDirect(): RelationDefNoDirectContext;
relationRecurseNoDirect(): RelationRecurseNoDirectContext;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefDirectAssignmentContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
LBRACKET(): TerminalNode;
relationDefTypeRestriction_list(): RelationDefTypeRestrictionContext[];
relationDefTypeRestriction(i: number): RelationDefTypeRestrictionContext;
RPRACKET(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefRewriteContext extends ParserRuleContext {
_rewriteComputedusersetName: Extended_identifierContext;
_rewriteTuplesetName: Extended_identifierContext;
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
extended_identifier_list(): Extended_identifierContext[];
extended_identifier(i: number): Extended_identifierContext;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
FROM(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefTypeRestrictionContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
relationDefTypeRestrictionBase(): RelationDefTypeRestrictionBaseContext;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
KEYWORD_WITH(): TerminalNode;
conditionName(): ConditionNameContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class RelationDefTypeRestrictionBaseContext extends ParserRuleContext {
_relationDefTypeRestrictionType: Extended_identifierContext;
_relationDefTypeRestrictionWildcard: Token;
_relationDefTypeRestrictionRelation: Extended_identifierContext;
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
extended_identifier_list(): Extended_identifierContext[];
extended_identifier(i: number): Extended_identifierContext;
COLON(): TerminalNode;
HASH(): TerminalNode;
STAR(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ConditionsContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
condition_list(): ConditionContext[];
condition(i: number): ConditionContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ConditionContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
CONDITION(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
conditionName(): ConditionNameContext;
LPAREN(): TerminalNode;
conditionParameter_list(): ConditionParameterContext[];
conditionParameter(i: number): ConditionParameterContext;
RPAREN(): TerminalNode;
LBRACE(): TerminalNode;
conditionExpression(): ConditionExpressionContext;
RBRACE(): TerminalNode;
multiLineComment(): MultiLineCommentContext;
COMMA_list(): TerminalNode[];
COMMA(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ConditionNameContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
IDENTIFIER(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ConditionParameterContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
parameterName(): ParameterNameContext;
COLON(): TerminalNode;
parameterType(): ParameterTypeContext;
NEWLINE(): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ParameterNameContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
IDENTIFIER(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ParameterTypeContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
CONDITION_PARAM_TYPE(): TerminalNode;
CONDITION_PARAM_CONTAINER(): TerminalNode;
LESS(): TerminalNode;
GREATER(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class MultiLineCommentContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
HASH(): TerminalNode;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
multiLineComment(): MultiLineCommentContext;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class IdentifierContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
MODEL(): TerminalNode;
SCHEMA(): TerminalNode;
TYPE(): TerminalNode;
RELATION(): TerminalNode;
IDENTIFIER(): TerminalNode;
MODULE(): TerminalNode;
EXTEND(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class Extended_identifierContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
identifier(): IdentifierContext;
EXTENDED_IDENTIFIER(): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}
export declare class ConditionExpressionContext extends ParserRuleContext {
constructor(parser?: OpenFGAParser, parent?: ParserRuleContext, invokingState?: number);
IDENTIFIER_list(): TerminalNode[];
IDENTIFIER(i: number): TerminalNode;
EQUALS_list(): TerminalNode[];
EQUALS(i: number): TerminalNode;
NOT_EQUALS_list(): TerminalNode[];
NOT_EQUALS(i: number): TerminalNode;
IN_list(): TerminalNode[];
IN(i: number): TerminalNode;
LESS_list(): TerminalNode[];
LESS(i: number): TerminalNode;
LESS_EQUALS_list(): TerminalNode[];
LESS_EQUALS(i: number): TerminalNode;
GREATER_EQUALS_list(): TerminalNode[];
GREATER_EQUALS(i: number): TerminalNode;
GREATER_list(): TerminalNode[];
GREATER(i: number): TerminalNode;
LOGICAL_AND_list(): TerminalNode[];
LOGICAL_AND(i: number): TerminalNode;
LOGICAL_OR_list(): TerminalNode[];
LOGICAL_OR(i: number): TerminalNode;
LBRACKET_list(): TerminalNode[];
LBRACKET(i: number): TerminalNode;
RPRACKET_list(): TerminalNode[];
RPRACKET(i: number): TerminalNode;
LBRACE_list(): TerminalNode[];
LBRACE(i: number): TerminalNode;
LPAREN_list(): TerminalNode[];
LPAREN(i: number): TerminalNode;
RPAREN_list(): TerminalNode[];
RPAREN(i: number): TerminalNode;
DOT_list(): TerminalNode[];
DOT(i: number): TerminalNode;
MINUS_list(): TerminalNode[];
MINUS(i: number): TerminalNode;
EXCLAM_list(): TerminalNode[];
EXCLAM(i: number): TerminalNode;
QUESTIONMARK_list(): TerminalNode[];
QUESTIONMARK(i: number): TerminalNode;
PLUS_list(): TerminalNode[];
PLUS(i: number): TerminalNode;
STAR_list(): TerminalNode[];
STAR(i: number): TerminalNode;
SLASH_list(): TerminalNode[];
SLASH(i: number): TerminalNode;
PERCENT_list(): TerminalNode[];
PERCENT(i: number): TerminalNode;
CEL_TRUE_list(): TerminalNode[];
CEL_TRUE(i: number): TerminalNode;
CEL_FALSE_list(): TerminalNode[];
CEL_FALSE(i: number): TerminalNode;
NUL_list(): TerminalNode[];
NUL(i: number): TerminalNode;
WHITESPACE_list(): TerminalNode[];
WHITESPACE(i: number): TerminalNode;
CEL_COMMENT_list(): TerminalNode[];
CEL_COMMENT(i: number): TerminalNode;
NUM_FLOAT_list(): TerminalNode[];
NUM_FLOAT(i: number): TerminalNode;
NUM_INT_list(): TerminalNode[];
NUM_INT(i: number): TerminalNode;
NUM_UINT_list(): TerminalNode[];
NUM_UINT(i: number): TerminalNode;
STRING_list(): TerminalNode[];
STRING(i: number): TerminalNode;
BYTES_list(): TerminalNode[];
BYTES(i: number): TerminalNode;
NEWLINE_list(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
RBRACE_list(): TerminalNode[];
RBRACE(i: number): TerminalNode;
get ruleIndex(): number;
enterRule(listener: OpenFGAParserListener): void;
exitRule(listener: OpenFGAParserListener): void;
}