Files
infocom-systems-design/node_modules/langium/lib/languages/generated/ast.d.ts
2025-10-03 22:27:28 +03:00

405 lines
17 KiB
TypeScript

/******************************************************************************
* This file was generated by langium-cli 3.3.0.
* DO NOT EDIT MANUALLY!
******************************************************************************/
import type { AstNode, Reference, ReferenceInfo, TypeMetaData } from '../../syntax-tree.js';
import { AbstractAstReflection } from '../../syntax-tree.js';
export declare const LangiumGrammarTerminals: {
ID: RegExp;
STRING: RegExp;
NUMBER: RegExp;
RegexLiteral: RegExp;
WS: RegExp;
ML_COMMENT: RegExp;
SL_COMMENT: RegExp;
};
export type LangiumGrammarTerminalNames = keyof typeof LangiumGrammarTerminals;
export type LangiumGrammarKeywordNames = "!" | "&" | "(" | ")" | "*" | "+" | "+=" | "," | "->" | "." | ".." | ":" | ";" | "<" | "=" | "=>" | ">" | "?" | "?!" | "?<!" | "?<=" | "?=" | "@" | "Date" | "EOF" | "[" | "]" | "bigint" | "boolean" | "current" | "entry" | "extends" | "false" | "fragment" | "grammar" | "hidden" | "import" | "infer" | "infers" | "interface" | "number" | "returns" | "string" | "terminal" | "true" | "type" | "with" | "{" | "|" | "}";
export type LangiumGrammarTokenNames = LangiumGrammarTerminalNames | LangiumGrammarKeywordNames;
export type AbstractRule = ParserRule | TerminalRule;
export declare const AbstractRule = "AbstractRule";
export declare function isAbstractRule(item: unknown): item is AbstractRule;
export type AbstractType = InferredType | Interface | ParserRule | Type;
export declare const AbstractType = "AbstractType";
export declare function isAbstractType(item: unknown): item is AbstractType;
export type Condition = BooleanLiteral | Conjunction | Disjunction | Negation | ParameterReference;
export declare const Condition = "Condition";
export declare function isCondition(item: unknown): item is Condition;
export type FeatureName = 'current' | 'entry' | 'extends' | 'false' | 'fragment' | 'grammar' | 'hidden' | 'import' | 'infer' | 'infers' | 'interface' | 'returns' | 'terminal' | 'true' | 'type' | 'with' | PrimitiveType | string;
export declare function isFeatureName(item: unknown): item is FeatureName;
export type PrimitiveType = 'Date' | 'bigint' | 'boolean' | 'number' | 'string';
export declare function isPrimitiveType(item: unknown): item is PrimitiveType;
export type TypeDefinition = ArrayType | ReferenceType | SimpleType | UnionType;
export declare const TypeDefinition = "TypeDefinition";
export declare function isTypeDefinition(item: unknown): item is TypeDefinition;
export type ValueLiteral = ArrayLiteral | BooleanLiteral | NumberLiteral | StringLiteral;
export declare const ValueLiteral = "ValueLiteral";
export declare function isValueLiteral(item: unknown): item is ValueLiteral;
export interface AbstractElement extends AstNode {
readonly $type: 'AbstractElement' | 'Action' | 'Alternatives' | 'Assignment' | 'CharacterRange' | 'CrossReference' | 'EndOfFile' | 'Group' | 'Keyword' | 'NegatedToken' | 'RegexToken' | 'RuleCall' | 'TerminalAlternatives' | 'TerminalGroup' | 'TerminalRuleCall' | 'UnorderedGroup' | 'UntilToken' | 'Wildcard';
cardinality?: '*' | '+' | '?';
lookahead?: '?!' | '?<!' | '?<=' | '?=';
}
export declare const AbstractElement = "AbstractElement";
export declare function isAbstractElement(item: unknown): item is AbstractElement;
export interface ArrayLiteral extends AstNode {
readonly $container: ArrayLiteral | TypeAttribute;
readonly $type: 'ArrayLiteral';
elements: Array<ValueLiteral>;
}
export declare const ArrayLiteral = "ArrayLiteral";
export declare function isArrayLiteral(item: unknown): item is ArrayLiteral;
export interface ArrayType extends AstNode {
readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;
readonly $type: 'ArrayType';
elementType: TypeDefinition;
}
export declare const ArrayType = "ArrayType";
export declare function isArrayType(item: unknown): item is ArrayType;
export interface BooleanLiteral extends AstNode {
readonly $container: ArrayLiteral | Conjunction | Disjunction | Group | NamedArgument | Negation | TypeAttribute;
readonly $type: 'BooleanLiteral';
true: boolean;
}
export declare const BooleanLiteral = "BooleanLiteral";
export declare function isBooleanLiteral(item: unknown): item is BooleanLiteral;
export interface Conjunction extends AstNode {
readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;
readonly $type: 'Conjunction';
left: Condition;
right: Condition;
}
export declare const Conjunction = "Conjunction";
export declare function isConjunction(item: unknown): item is Conjunction;
export interface Disjunction extends AstNode {
readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;
readonly $type: 'Disjunction';
left: Condition;
right: Condition;
}
export declare const Disjunction = "Disjunction";
export declare function isDisjunction(item: unknown): item is Disjunction;
export interface Grammar extends AstNode {
readonly $type: 'Grammar';
definesHiddenTokens: boolean;
hiddenTokens: Array<Reference<AbstractRule>>;
imports: Array<GrammarImport>;
interfaces: Array<Interface>;
isDeclared: boolean;
name?: string;
rules: Array<AbstractRule>;
types: Array<Type>;
usedGrammars: Array<Reference<Grammar>>;
}
export declare const Grammar = "Grammar";
export declare function isGrammar(item: unknown): item is Grammar;
export interface GrammarImport extends AstNode {
readonly $container: Grammar;
readonly $type: 'GrammarImport';
path: string;
}
export declare const GrammarImport = "GrammarImport";
export declare function isGrammarImport(item: unknown): item is GrammarImport;
export interface InferredType extends AstNode {
readonly $container: Action | ParserRule;
readonly $type: 'InferredType';
name: string;
}
export declare const InferredType = "InferredType";
export declare function isInferredType(item: unknown): item is InferredType;
export interface Interface extends AstNode {
readonly $container: Grammar;
readonly $type: 'Interface';
attributes: Array<TypeAttribute>;
name: string;
superTypes: Array<Reference<AbstractType>>;
}
export declare const Interface = "Interface";
export declare function isInterface(item: unknown): item is Interface;
export interface NamedArgument extends AstNode {
readonly $container: RuleCall;
readonly $type: 'NamedArgument';
calledByName: boolean;
parameter?: Reference<Parameter>;
value: Condition;
}
export declare const NamedArgument = "NamedArgument";
export declare function isNamedArgument(item: unknown): item is NamedArgument;
export interface Negation extends AstNode {
readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;
readonly $type: 'Negation';
value: Condition;
}
export declare const Negation = "Negation";
export declare function isNegation(item: unknown): item is Negation;
export interface NumberLiteral extends AstNode {
readonly $container: ArrayLiteral | TypeAttribute;
readonly $type: 'NumberLiteral';
value: number;
}
export declare const NumberLiteral = "NumberLiteral";
export declare function isNumberLiteral(item: unknown): item is NumberLiteral;
export interface Parameter extends AstNode {
readonly $container: ParserRule;
readonly $type: 'Parameter';
name: string;
}
export declare const Parameter = "Parameter";
export declare function isParameter(item: unknown): item is Parameter;
export interface ParameterReference extends AstNode {
readonly $container: Conjunction | Disjunction | Group | NamedArgument | Negation;
readonly $type: 'ParameterReference';
parameter: Reference<Parameter>;
}
export declare const ParameterReference = "ParameterReference";
export declare function isParameterReference(item: unknown): item is ParameterReference;
export interface ParserRule extends AstNode {
readonly $container: Grammar;
readonly $type: 'ParserRule';
dataType?: PrimitiveType;
definesHiddenTokens: boolean;
definition: AbstractElement;
entry: boolean;
fragment: boolean;
hiddenTokens: Array<Reference<AbstractRule>>;
inferredType?: InferredType;
name: string;
parameters: Array<Parameter>;
returnType?: Reference<AbstractType>;
wildcard: boolean;
}
export declare const ParserRule = "ParserRule";
export declare function isParserRule(item: unknown): item is ParserRule;
export interface ReferenceType extends AstNode {
readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;
readonly $type: 'ReferenceType';
referenceType: TypeDefinition;
}
export declare const ReferenceType = "ReferenceType";
export declare function isReferenceType(item: unknown): item is ReferenceType;
export interface ReturnType extends AstNode {
readonly $container: TerminalRule;
readonly $type: 'ReturnType';
name: PrimitiveType | string;
}
export declare const ReturnType = "ReturnType";
export declare function isReturnType(item: unknown): item is ReturnType;
export interface SimpleType extends AstNode {
readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;
readonly $type: 'SimpleType';
primitiveType?: PrimitiveType;
stringType?: string;
typeRef?: Reference<AbstractType>;
}
export declare const SimpleType = "SimpleType";
export declare function isSimpleType(item: unknown): item is SimpleType;
export interface StringLiteral extends AstNode {
readonly $container: ArrayLiteral | TypeAttribute;
readonly $type: 'StringLiteral';
value: string;
}
export declare const StringLiteral = "StringLiteral";
export declare function isStringLiteral(item: unknown): item is StringLiteral;
export interface TerminalRule extends AstNode {
readonly $container: Grammar;
readonly $type: 'TerminalRule';
definition: AbstractElement;
fragment: boolean;
hidden: boolean;
name: string;
type?: ReturnType;
}
export declare const TerminalRule = "TerminalRule";
export declare function isTerminalRule(item: unknown): item is TerminalRule;
export interface Type extends AstNode {
readonly $container: Grammar;
readonly $type: 'Type';
name: string;
type: TypeDefinition;
}
export declare const Type = "Type";
export declare function isType(item: unknown): item is Type;
export interface TypeAttribute extends AstNode {
readonly $container: Interface;
readonly $type: 'TypeAttribute';
defaultValue?: ValueLiteral;
isOptional: boolean;
name: FeatureName;
type: TypeDefinition;
}
export declare const TypeAttribute = "TypeAttribute";
export declare function isTypeAttribute(item: unknown): item is TypeAttribute;
export interface UnionType extends AstNode {
readonly $container: ArrayType | ReferenceType | Type | TypeAttribute | UnionType;
readonly $type: 'UnionType';
types: Array<TypeDefinition>;
}
export declare const UnionType = "UnionType";
export declare function isUnionType(item: unknown): item is UnionType;
export interface Action extends AbstractElement {
readonly $type: 'Action';
feature?: FeatureName;
inferredType?: InferredType;
operator?: '+=' | '=';
type?: Reference<AbstractType>;
}
export declare const Action = "Action";
export declare function isAction(item: unknown): item is Action;
export interface Alternatives extends AbstractElement {
readonly $type: 'Alternatives';
elements: Array<AbstractElement>;
}
export declare const Alternatives = "Alternatives";
export declare function isAlternatives(item: unknown): item is Alternatives;
export interface Assignment extends AbstractElement {
readonly $type: 'Assignment';
feature: FeatureName;
operator: '+=' | '=' | '?=';
terminal: AbstractElement;
}
export declare const Assignment = "Assignment";
export declare function isAssignment(item: unknown): item is Assignment;
export interface CharacterRange extends AbstractElement {
readonly $type: 'CharacterRange';
left: Keyword;
right?: Keyword;
}
export declare const CharacterRange = "CharacterRange";
export declare function isCharacterRange(item: unknown): item is CharacterRange;
export interface CrossReference extends AbstractElement {
readonly $type: 'CrossReference';
deprecatedSyntax: boolean;
terminal?: AbstractElement;
type: Reference<AbstractType>;
}
export declare const CrossReference = "CrossReference";
export declare function isCrossReference(item: unknown): item is CrossReference;
export interface EndOfFile extends AbstractElement {
readonly $type: 'EndOfFile';
}
export declare const EndOfFile = "EndOfFile";
export declare function isEndOfFile(item: unknown): item is EndOfFile;
export interface Group extends AbstractElement {
readonly $type: 'Group';
elements: Array<AbstractElement>;
guardCondition?: Condition;
}
export declare const Group = "Group";
export declare function isGroup(item: unknown): item is Group;
export interface Keyword extends AbstractElement {
readonly $container: CharacterRange;
readonly $type: 'Keyword';
value: string;
}
export declare const Keyword = "Keyword";
export declare function isKeyword(item: unknown): item is Keyword;
export interface NegatedToken extends AbstractElement {
readonly $type: 'NegatedToken';
terminal: AbstractElement;
}
export declare const NegatedToken = "NegatedToken";
export declare function isNegatedToken(item: unknown): item is NegatedToken;
export interface RegexToken extends AbstractElement {
readonly $type: 'RegexToken';
regex: string;
}
export declare const RegexToken = "RegexToken";
export declare function isRegexToken(item: unknown): item is RegexToken;
export interface RuleCall extends AbstractElement {
readonly $type: 'RuleCall';
arguments: Array<NamedArgument>;
rule: Reference<AbstractRule>;
}
export declare const RuleCall = "RuleCall";
export declare function isRuleCall(item: unknown): item is RuleCall;
export interface TerminalAlternatives extends AbstractElement {
readonly $type: 'TerminalAlternatives';
elements: Array<AbstractElement>;
}
export declare const TerminalAlternatives = "TerminalAlternatives";
export declare function isTerminalAlternatives(item: unknown): item is TerminalAlternatives;
export interface TerminalGroup extends AbstractElement {
readonly $type: 'TerminalGroup';
elements: Array<AbstractElement>;
}
export declare const TerminalGroup = "TerminalGroup";
export declare function isTerminalGroup(item: unknown): item is TerminalGroup;
export interface TerminalRuleCall extends AbstractElement {
readonly $type: 'TerminalRuleCall';
rule: Reference<TerminalRule>;
}
export declare const TerminalRuleCall = "TerminalRuleCall";
export declare function isTerminalRuleCall(item: unknown): item is TerminalRuleCall;
export interface UnorderedGroup extends AbstractElement {
readonly $type: 'UnorderedGroup';
elements: Array<AbstractElement>;
}
export declare const UnorderedGroup = "UnorderedGroup";
export declare function isUnorderedGroup(item: unknown): item is UnorderedGroup;
export interface UntilToken extends AbstractElement {
readonly $type: 'UntilToken';
terminal: AbstractElement;
}
export declare const UntilToken = "UntilToken";
export declare function isUntilToken(item: unknown): item is UntilToken;
export interface Wildcard extends AbstractElement {
readonly $type: 'Wildcard';
}
export declare const Wildcard = "Wildcard";
export declare function isWildcard(item: unknown): item is Wildcard;
export type LangiumGrammarAstType = {
AbstractElement: AbstractElement;
AbstractRule: AbstractRule;
AbstractType: AbstractType;
Action: Action;
Alternatives: Alternatives;
ArrayLiteral: ArrayLiteral;
ArrayType: ArrayType;
Assignment: Assignment;
BooleanLiteral: BooleanLiteral;
CharacterRange: CharacterRange;
Condition: Condition;
Conjunction: Conjunction;
CrossReference: CrossReference;
Disjunction: Disjunction;
EndOfFile: EndOfFile;
Grammar: Grammar;
GrammarImport: GrammarImport;
Group: Group;
InferredType: InferredType;
Interface: Interface;
Keyword: Keyword;
NamedArgument: NamedArgument;
NegatedToken: NegatedToken;
Negation: Negation;
NumberLiteral: NumberLiteral;
Parameter: Parameter;
ParameterReference: ParameterReference;
ParserRule: ParserRule;
ReferenceType: ReferenceType;
RegexToken: RegexToken;
ReturnType: ReturnType;
RuleCall: RuleCall;
SimpleType: SimpleType;
StringLiteral: StringLiteral;
TerminalAlternatives: TerminalAlternatives;
TerminalGroup: TerminalGroup;
TerminalRule: TerminalRule;
TerminalRuleCall: TerminalRuleCall;
Type: Type;
TypeAttribute: TypeAttribute;
TypeDefinition: TypeDefinition;
UnionType: UnionType;
UnorderedGroup: UnorderedGroup;
UntilToken: UntilToken;
ValueLiteral: ValueLiteral;
Wildcard: Wildcard;
};
export declare class LangiumGrammarAstReflection extends AbstractAstReflection {
getAllTypes(): string[];
protected computeIsSubtype(subtype: string, supertype: string): boolean;
getReferenceType(refInfo: ReferenceInfo): string;
getTypeMetaData(type: string): TypeMetaData;
}
export declare const reflection: LangiumGrammarAstReflection;
//# sourceMappingURL=ast.d.ts.map