agentlang
Version:
The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans
1,367 lines • 46.9 kB
JavaScript
/******************************************************************************
* This file was generated by langium-cli 3.5.2.
* DO NOT EDIT MANUALLY!
******************************************************************************/
/* eslint-disable */
import * as langium from 'langium';
export const AgentlangTerminals = {
ID: /(([_a-zA-Z][\w_]*)(\/([_a-zA-Z][\w_]*))?)/,
STRING: /("(((\\([\s\S]))|((?!(((\\|")|\r)|\n))[\s\S]*?))|(\r?\n))*")/,
INT: /-?[0-9]+/,
WS: /\s+/,
ML_COMMENT: /\/\*[\s\S]*?\*\//,
SL_COMMENT: /\/\/[^\n\r]*/,
};
export const AttributeValueExpression = 'AttributeValueExpression';
export function isAttributeValueExpression(item) {
return reflection.isInstance(item, AttributeValueExpression);
}
export function isBoolean(item) {
return item === 'true' || item === 'false';
}
export function isDecimal(item) {
return typeof item === 'number';
}
export const Definition = 'Definition';
export function isDefinition(item) {
return reflection.isInstance(item, Definition);
}
export const Expr = 'Expr';
export function isExpr(item) {
return reflection.isInstance(item, Expr);
}
export const FlowStepSpec = 'FlowStepSpec';
export function isFlowStepSpec(item) {
return reflection.isInstance(item, FlowStepSpec);
}
export function isGenericName(item) {
return (typeof item === 'string' && (/(([_a-zA-Z][\w_]*)(\/([_a-zA-Z][\w_]*))?)/.test(item) || /("(((\\([\s\S]))|((?!(((\\|")|\r)|\n))[\s\S]*?))|(\r?\n))*")/.test(item)));
}
export function isJoinType(item) {
return item === '@join' || item === '@inner_join' || item === '@left_join' || item === '@right_join' || item === '@full_join';
}
export const PrimExpr = 'PrimExpr';
export function isPrimExpr(item) {
return reflection.isInstance(item, PrimExpr);
}
export function isQualifiedName(item) {
return isRef(item) || (typeof item === 'string' && (/(([_a-zA-Z][\w_]*)(\/([_a-zA-Z][\w_]*))?)/.test(item)));
}
export function isQueryId(item) {
return typeof item === 'string';
}
export function isRef(item) {
return typeof item === 'string';
}
export const SchemaDefinition = 'SchemaDefinition';
export function isSchemaDefinition(item) {
return reflection.isInstance(item, SchemaDefinition);
}
export function isSqlComparisonOpr(item) {
return item === '=' || item === '<>' || item === '!=' || item === '<' || item === '<=' || item === '>' || item === '>=' || item === 'in' || item === 'like' || item === 'between';
}
export function isTaggedId(item) {
return typeof item === 'string';
}
export function isWorkflowHeaderPrefix(item) {
return item === 'create' || item === 'update' || item === 'delete';
}
export function isWorkflowHeaderTag(item) {
return item === '@after' || item === '@before';
}
export const ActionEntry = 'ActionEntry';
export function isActionEntry(item) {
return reflection.isInstance(item, ActionEntry);
}
export const AfterTriggerDefinition = 'AfterTriggerDefinition';
export function isAfterTriggerDefinition(item) {
return reflection.isInstance(item, AfterTriggerDefinition);
}
export const AgentDefinition = 'AgentDefinition';
export function isAgentDefinition(item) {
return reflection.isInstance(item, AgentDefinition);
}
export const AgentXtraAttribute = 'AgentXtraAttribute';
export function isAgentXtraAttribute(item) {
return reflection.isInstance(item, AgentXtraAttribute);
}
export const AgentXtraSpec = 'AgentXtraSpec';
export function isAgentXtraSpec(item) {
return reflection.isInstance(item, AgentXtraSpec);
}
export const AliasSpec = 'AliasSpec';
export function isAliasSpec(item) {
return reflection.isInstance(item, AliasSpec);
}
export const ArrayLiteral = 'ArrayLiteral';
export function isArrayLiteral(item) {
return reflection.isInstance(item, ArrayLiteral);
}
export const AsyncFnCall = 'AsyncFnCall';
export function isAsyncFnCall(item) {
return reflection.isInstance(item, AsyncFnCall);
}
export const AttributeDefinition = 'AttributeDefinition';
export function isAttributeDefinition(item) {
return reflection.isInstance(item, AttributeDefinition);
}
export const BackoffSpec = 'BackoffSpec';
export function isBackoffSpec(item) {
return reflection.isInstance(item, BackoffSpec);
}
export const BeforeTriggerDefinition = 'BeforeTriggerDefinition';
export function isBeforeTriggerDefinition(item) {
return reflection.isInstance(item, BeforeTriggerDefinition);
}
export const BinExpr = 'BinExpr';
export function isBinExpr(item) {
return reflection.isInstance(item, BinExpr);
}
export const CaseEntry = 'CaseEntry';
export function isCaseEntry(item) {
return reflection.isInstance(item, CaseEntry);
}
export const CatchSpec = 'CatchSpec';
export function isCatchSpec(item) {
return reflection.isInstance(item, CatchSpec);
}
export const CompositeUniqueDefinition = 'CompositeUniqueDefinition';
export function isCompositeUniqueDefinition(item) {
return reflection.isInstance(item, CompositeUniqueDefinition);
}
export const ConditionalFlowStep = 'ConditionalFlowStep';
export function isConditionalFlowStep(item) {
return reflection.isInstance(item, ConditionalFlowStep);
}
export const CrudMap = 'CrudMap';
export function isCrudMap(item) {
return reflection.isInstance(item, CrudMap);
}
export const CrudMapBody = 'CrudMapBody';
export function isCrudMapBody(item) {
return reflection.isInstance(item, CrudMapBody);
}
export const DecisionDefBody = 'DecisionDefBody';
export function isDecisionDefBody(item) {
return reflection.isInstance(item, DecisionDefBody);
}
export const DecisionDefinition = 'DecisionDefinition';
export function isDecisionDefinition(item) {
return reflection.isInstance(item, DecisionDefinition);
}
export const Delete = 'Delete';
export function isDelete(item) {
return reflection.isInstance(item, Delete);
}
export const DirectiveDefinition = 'DirectiveDefinition';
export function isDirectiveDefinition(item) {
return reflection.isInstance(item, DirectiveDefinition);
}
export const Else = 'Else';
export function isElse(item) {
return reflection.isInstance(item, Else);
}
export const EntityActionsDefinitions = 'EntityActionsDefinitions';
export function isEntityActionsDefinitions(item) {
return reflection.isInstance(item, EntityActionsDefinitions);
}
export const EntityDefinition = 'EntityDefinition';
export function isEntityDefinition(item) {
return reflection.isInstance(item, EntityDefinition);
}
export const EnumSpec = 'EnumSpec';
export function isEnumSpec(item) {
return reflection.isInstance(item, EnumSpec);
}
export const EventDefinition = 'EventDefinition';
export function isEventDefinition(item) {
return reflection.isInstance(item, EventDefinition);
}
export const ExtendsClause = 'ExtendsClause';
export function isExtendsClause(item) {
return reflection.isInstance(item, ExtendsClause);
}
export const FlowDefBody = 'FlowDefBody';
export function isFlowDefBody(item) {
return reflection.isInstance(item, FlowDefBody);
}
export const FlowDefinition = 'FlowDefinition';
export function isFlowDefinition(item) {
return reflection.isInstance(item, FlowDefinition);
}
export const FlowEntry = 'FlowEntry';
export function isFlowEntry(item) {
return reflection.isInstance(item, FlowEntry);
}
export const FnCall = 'FnCall';
export function isFnCall(item) {
return reflection.isInstance(item, FnCall);
}
export const ForEach = 'ForEach';
export function isForEach(item) {
return reflection.isInstance(item, ForEach);
}
export const FullTextSearch = 'FullTextSearch';
export function isFullTextSearch(item) {
return reflection.isInstance(item, FullTextSearch);
}
export const GenericDefBody = 'GenericDefBody';
export function isGenericDefBody(item) {
return reflection.isInstance(item, GenericDefBody);
}
export const GenericPropertyDef = 'GenericPropertyDef';
export function isGenericPropertyDef(item) {
return reflection.isInstance(item, GenericPropertyDef);
}
export const GlossaryEntryDefinition = 'GlossaryEntryDefinition';
export function isGlossaryEntryDefinition(item) {
return reflection.isInstance(item, GlossaryEntryDefinition);
}
export const Group = 'Group';
export function isGroup(item) {
return reflection.isInstance(item, Group);
}
export const Handler = 'Handler';
export function isHandler(item) {
return reflection.isInstance(item, Handler);
}
export const If = 'If';
export function isIf(item) {
return reflection.isInstance(item, If);
}
export const Import = 'Import';
export function isImport(item) {
return reflection.isInstance(item, Import);
}
export const JoinSpec = 'JoinSpec';
export function isJoinSpec(item) {
return reflection.isInstance(item, JoinSpec);
}
export const KvPair = 'KvPair';
export function isKvPair(item) {
return reflection.isInstance(item, KvPair);
}
export const KvPairs = 'KvPairs';
export function isKvPairs(item) {
return reflection.isInstance(item, KvPairs);
}
export const Literal = 'Literal';
export function isLiteral(item) {
return reflection.isInstance(item, Literal);
}
export const MapEntry = 'MapEntry';
export function isMapEntry(item) {
return reflection.isInstance(item, MapEntry);
}
export const MapKey = 'MapKey';
export function isMapKey(item) {
return reflection.isInstance(item, MapKey);
}
export const MapLiteral = 'MapLiteral';
export function isMapLiteral(item) {
return reflection.isInstance(item, MapLiteral);
}
export const MetaDefinition = 'MetaDefinition';
export function isMetaDefinition(item) {
return reflection.isInstance(item, MetaDefinition);
}
export const ModuleDefinition = 'ModuleDefinition';
export function isModuleDefinition(item) {
return reflection.isInstance(item, ModuleDefinition);
}
export const NegExpr = 'NegExpr';
export function isNegExpr(item) {
return reflection.isInstance(item, NegExpr);
}
export const NodeDefinition = 'NodeDefinition';
export function isNodeDefinition(item) {
return reflection.isInstance(item, NodeDefinition);
}
export const NotExpr = 'NotExpr';
export function isNotExpr(item) {
return reflection.isInstance(item, NotExpr);
}
export const OneOfSpec = 'OneOfSpec';
export function isOneOfSpec(item) {
return reflection.isInstance(item, OneOfSpec);
}
export const Pattern = 'Pattern';
export function isPattern(item) {
return reflection.isInstance(item, Pattern);
}
export const PrePostTriggerDefinition = 'PrePostTriggerDefinition';
export function isPrePostTriggerDefinition(item) {
return reflection.isInstance(item, PrePostTriggerDefinition);
}
export const PropertyDefinition = 'PropertyDefinition';
export function isPropertyDefinition(item) {
return reflection.isInstance(item, PropertyDefinition);
}
export const PublicAgentDefinition = 'PublicAgentDefinition';
export function isPublicAgentDefinition(item) {
return reflection.isInstance(item, PublicAgentDefinition);
}
export const PublicEventDefinition = 'PublicEventDefinition';
export function isPublicEventDefinition(item) {
return reflection.isInstance(item, PublicEventDefinition);
}
export const PublicWorkflowDefinition = 'PublicWorkflowDefinition';
export function isPublicWorkflowDefinition(item) {
return reflection.isInstance(item, PublicWorkflowDefinition);
}
export const Purge = 'Purge';
export function isPurge(item) {
return reflection.isInstance(item, Purge);
}
export const RbacAllowSpec = 'RbacAllowSpec';
export function isRbacAllowSpec(item) {
return reflection.isInstance(item, RbacAllowSpec);
}
export const RbacExpressionSpec = 'RbacExpressionSpec';
export function isRbacExpressionSpec(item) {
return reflection.isInstance(item, RbacExpressionSpec);
}
export const RbacOpr = 'RbacOpr';
export function isRbacOpr(item) {
return reflection.isInstance(item, RbacOpr);
}
export const RbacRolesSpec = 'RbacRolesSpec';
export function isRbacRolesSpec(item) {
return reflection.isInstance(item, RbacRolesSpec);
}
export const RbacSpecDefinition = 'RbacSpecDefinition';
export function isRbacSpecDefinition(item) {
return reflection.isInstance(item, RbacSpecDefinition);
}
export const RbacSpecEntries = 'RbacSpecEntries';
export function isRbacSpecEntries(item) {
return reflection.isInstance(item, RbacSpecEntries);
}
export const RbacSpecEntry = 'RbacSpecEntry';
export function isRbacSpecEntry(item) {
return reflection.isInstance(item, RbacSpecEntry);
}
export const RecordDefinition = 'RecordDefinition';
export function isRecordDefinition(item) {
return reflection.isInstance(item, RecordDefinition);
}
export const RecordExtraDefinition = 'RecordExtraDefinition';
export function isRecordExtraDefinition(item) {
return reflection.isInstance(item, RecordExtraDefinition);
}
export const RecordSchemaDefinition = 'RecordSchemaDefinition';
export function isRecordSchemaDefinition(item) {
return reflection.isInstance(item, RecordSchemaDefinition);
}
export const RefSpec = 'RefSpec';
export function isRefSpec(item) {
return reflection.isInstance(item, RefSpec);
}
export const RelationshipDefinition = 'RelationshipDefinition';
export function isRelationshipDefinition(item) {
return reflection.isInstance(item, RelationshipDefinition);
}
export const RelationshipPattern = 'RelationshipPattern';
export function isRelationshipPattern(item) {
return reflection.isInstance(item, RelationshipPattern);
}
export const RelNodes = 'RelNodes';
export function isRelNodes(item) {
return reflection.isInstance(item, RelNodes);
}
export const ResolverDefinition = 'ResolverDefinition';
export function isResolverDefinition(item) {
return reflection.isInstance(item, ResolverDefinition);
}
export const ResolverFnName = 'ResolverFnName';
export function isResolverFnName(item) {
return reflection.isInstance(item, ResolverFnName);
}
export const ResolverMethodName = 'ResolverMethodName';
export function isResolverMethodName(item) {
return reflection.isInstance(item, ResolverMethodName);
}
export const ResolverMethodSpec = 'ResolverMethodSpec';
export function isResolverMethodSpec(item) {
return reflection.isInstance(item, ResolverMethodSpec);
}
export const RetryDefinition = 'RetryDefinition';
export function isRetryDefinition(item) {
return reflection.isInstance(item, RetryDefinition);
}
export const Return = 'Return';
export function isReturn(item) {
return reflection.isInstance(item, Return);
}
export const RuntimeHint = 'RuntimeHint';
export function isRuntimeHint(item) {
return reflection.isInstance(item, RuntimeHint);
}
export const ScenarioDefinition = 'ScenarioDefinition';
export function isScenarioDefinition(item) {
return reflection.isInstance(item, ScenarioDefinition);
}
export const SelectIntoEntry = 'SelectIntoEntry';
export function isSelectIntoEntry(item) {
return reflection.isInstance(item, SelectIntoEntry);
}
export const SelectIntoSpec = 'SelectIntoSpec';
export function isSelectIntoSpec(item) {
return reflection.isInstance(item, SelectIntoSpec);
}
export const SetAttribute = 'SetAttribute';
export function isSetAttribute(item) {
return reflection.isInstance(item, SetAttribute);
}
export const StandaloneStatement = 'StandaloneStatement';
export function isStandaloneStatement(item) {
return reflection.isInstance(item, StandaloneStatement);
}
export const Statement = 'Statement';
export function isStatement(item) {
return reflection.isInstance(item, Statement);
}
export const ThenSpec = 'ThenSpec';
export function isThenSpec(item) {
return reflection.isInstance(item, ThenSpec);
}
export const TriggerDefinition = 'TriggerDefinition';
export function isTriggerDefinition(item) {
return reflection.isInstance(item, TriggerDefinition);
}
export const TriggerEntry = 'TriggerEntry';
export function isTriggerEntry(item) {
return reflection.isInstance(item, TriggerEntry);
}
export const WorkflowDefinition = 'WorkflowDefinition';
export function isWorkflowDefinition(item) {
return reflection.isInstance(item, WorkflowDefinition);
}
export const WorkflowHeader = 'WorkflowHeader';
export function isWorkflowHeader(item) {
return reflection.isInstance(item, WorkflowHeader);
}
export class AgentlangAstReflection extends langium.AbstractAstReflection {
getAllTypes() {
return [ActionEntry, AfterTriggerDefinition, AgentDefinition, AgentXtraAttribute, AgentXtraSpec, AliasSpec, ArrayLiteral, AsyncFnCall, AttributeDefinition, AttributeValueExpression, BackoffSpec, BeforeTriggerDefinition, BinExpr, CaseEntry, CatchSpec, CompositeUniqueDefinition, ConditionalFlowStep, CrudMap, CrudMapBody, DecisionDefBody, DecisionDefinition, Definition, Delete, DirectiveDefinition, Else, EntityActionsDefinitions, EntityDefinition, EnumSpec, EventDefinition, Expr, ExtendsClause, FlowDefBody, FlowDefinition, FlowEntry, FlowStepSpec, FnCall, ForEach, FullTextSearch, GenericDefBody, GenericPropertyDef, GlossaryEntryDefinition, Group, Handler, If, Import, JoinSpec, KvPair, KvPairs, Literal, MapEntry, MapKey, MapLiteral, MetaDefinition, ModuleDefinition, NegExpr, NodeDefinition, NotExpr, OneOfSpec, Pattern, PrePostTriggerDefinition, PrimExpr, PropertyDefinition, PublicAgentDefinition, PublicEventDefinition, PublicWorkflowDefinition, Purge, RbacAllowSpec, RbacExpressionSpec, RbacOpr, RbacRolesSpec, RbacSpecDefinition, RbacSpecEntries, RbacSpecEntry, RecordDefinition, RecordExtraDefinition, RecordSchemaDefinition, RefSpec, RelNodes, RelationshipDefinition, RelationshipPattern, ResolverDefinition, ResolverFnName, ResolverMethodName, ResolverMethodSpec, RetryDefinition, Return, RuntimeHint, ScenarioDefinition, SchemaDefinition, SelectIntoEntry, SelectIntoSpec, SetAttribute, StandaloneStatement, Statement, ThenSpec, TriggerDefinition, TriggerEntry, WorkflowDefinition, WorkflowHeader];
}
computeIsSubtype(subtype, supertype) {
switch (subtype) {
case AgentDefinition:
case DecisionDefinition:
case DirectiveDefinition:
case FlowDefinition:
case GlossaryEntryDefinition:
case PublicAgentDefinition:
case PublicWorkflowDefinition:
case RelationshipDefinition:
case ResolverDefinition:
case RetryDefinition:
case ScenarioDefinition:
case SchemaDefinition:
case StandaloneStatement:
case WorkflowDefinition: {
return this.isSubtype(Definition, supertype);
}
case BinExpr:
case PrimExpr: {
return this.isSubtype(Expr, supertype);
}
case CrudMap: {
return this.isSubtype(FlowStepSpec, supertype);
}
case EntityDefinition:
case EventDefinition:
case PublicEventDefinition:
case RecordDefinition: {
return this.isSubtype(SchemaDefinition, supertype);
}
case Expr: {
return this.isSubtype(AttributeValueExpression, supertype);
}
case Group:
case Literal:
case NegExpr:
case NotExpr: {
return this.isSubtype(PrimExpr, supertype);
}
default: {
return false;
}
}
}
getReferenceType(refInfo) {
const referenceId = `${refInfo.container.$type}:${refInfo.property}`;
switch (referenceId) {
default: {
throw new Error(`${referenceId} is not a valid reference id.`);
}
}
}
getTypeMetaData(type) {
switch (type) {
case ActionEntry: {
return {
name: ActionEntry,
properties: [
{ name: 'event' },
{ name: 'name' }
]
};
}
case AfterTriggerDefinition: {
return {
name: AfterTriggerDefinition,
properties: [
{ name: 'triggers' }
]
};
}
case AgentDefinition: {
return {
name: AgentDefinition,
properties: [
{ name: 'body' },
{ name: 'name' }
]
};
}
case AgentXtraAttribute: {
return {
name: AgentXtraAttribute,
properties: [
{ name: 'name' },
{ name: 'value' }
]
};
}
case AgentXtraSpec: {
return {
name: AgentXtraSpec,
properties: [
{ name: 'attributes', defaultValue: [] }
]
};
}
case AliasSpec: {
return {
name: AliasSpec,
properties: [
{ name: 'alias' },
{ name: 'aliases', defaultValue: [] }
]
};
}
case ArrayLiteral: {
return {
name: ArrayLiteral,
properties: [
{ name: 'vals', defaultValue: [] }
]
};
}
case AsyncFnCall: {
return {
name: AsyncFnCall,
properties: [
{ name: 'fnCall' }
]
};
}
case AttributeDefinition: {
return {
name: AttributeDefinition,
properties: [
{ name: 'arrayType' },
{ name: 'enumSpec' },
{ name: 'expr' },
{ name: 'name' },
{ name: 'oneOfSpec' },
{ name: 'properties', defaultValue: [] },
{ name: 'refSpec' },
{ name: 'type' }
]
};
}
case BackoffSpec: {
return {
name: BackoffSpec,
properties: [
{ name: 'attributes', defaultValue: [] }
]
};
}
case BeforeTriggerDefinition: {
return {
name: BeforeTriggerDefinition,
properties: [
{ name: 'triggers' }
]
};
}
case BinExpr: {
return {
name: BinExpr,
properties: [
{ name: 'e1' },
{ name: 'e2' },
{ name: 'op' }
]
};
}
case CaseEntry: {
return {
name: CaseEntry,
properties: [
{ name: 'cond' },
{ name: 'statements', defaultValue: [] }
]
};
}
case CatchSpec: {
return {
name: CatchSpec,
properties: [
{ name: 'handlers', defaultValue: [] }
]
};
}
case CompositeUniqueDefinition: {
return {
name: CompositeUniqueDefinition,
properties: [
{ name: 'attrs', defaultValue: [] }
]
};
}
case ConditionalFlowStep: {
return {
name: ConditionalFlowStep,
properties: [
{ name: 'expr' },
{ name: 'next' }
]
};
}
case CrudMap: {
return {
name: CrudMap,
properties: [
{ name: 'body' },
{ name: 'distinct', defaultValue: [] },
{ name: 'into' },
{ name: 'join' },
{ name: 'name' },
{ name: 'relationships', defaultValue: [] },
{ name: 'source' },
{ name: 'upsert', defaultValue: [] }
]
};
}
case CrudMapBody: {
return {
name: CrudMapBody,
properties: [
{ name: 'attributes', defaultValue: [] },
{ name: 'properties', defaultValue: [] }
]
};
}
case DecisionDefBody: {
return {
name: DecisionDefBody,
properties: [
{ name: 'cases', defaultValue: [] }
]
};
}
case DecisionDefinition: {
return {
name: DecisionDefinition,
properties: [
{ name: 'body' },
{ name: 'name' }
]
};
}
case Delete: {
return {
name: Delete,
properties: [
{ name: 'pattern' }
]
};
}
case DirectiveDefinition: {
return {
name: DirectiveDefinition,
properties: [
{ name: 'body' },
{ name: 'dir' },
{ name: 'name' }
]
};
}
case Else: {
return {
name: Else,
properties: [
{ name: 'statements', defaultValue: [] }
]
};
}
case EntityActionsDefinitions: {
return {
name: EntityActionsDefinitions,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case EntityDefinition: {
return {
name: EntityDefinition,
properties: [
{ name: 'extends' },
{ name: 'name' },
{ name: 'schema' }
]
};
}
case EnumSpec: {
return {
name: EnumSpec,
properties: [
{ name: 'type' },
{ name: 'values', defaultValue: [] }
]
};
}
case EventDefinition: {
return {
name: EventDefinition,
properties: [
{ name: 'extends' },
{ name: 'name' },
{ name: 'schema' }
]
};
}
case ExtendsClause: {
return {
name: ExtendsClause,
properties: [
{ name: 'parentName' }
]
};
}
case FlowDefBody: {
return {
name: FlowDefBody,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case FlowDefinition: {
return {
name: FlowDefinition,
properties: [
{ name: 'body' },
{ name: 'name' }
]
};
}
case FlowEntry: {
return {
name: FlowEntry,
properties: [
{ name: 'cond' },
{ name: 'next' },
{ name: 'root' }
]
};
}
case FnCall: {
return {
name: FnCall,
properties: [
{ name: 'args', defaultValue: [] },
{ name: 'name' }
]
};
}
case ForEach: {
return {
name: ForEach,
properties: [
{ name: 'src' },
{ name: 'statements', defaultValue: [] },
{ name: 'var' }
]
};
}
case FullTextSearch: {
return {
name: FullTextSearch,
properties: [
{ name: 'name' },
{ name: 'options' },
{ name: 'query' }
]
};
}
case GenericDefBody: {
return {
name: GenericDefBody,
properties: [
{ name: 'attributes', defaultValue: [] }
]
};
}
case GenericPropertyDef: {
return {
name: GenericPropertyDef,
properties: [
{ name: 'name' },
{ name: 'value' }
]
};
}
case GlossaryEntryDefinition: {
return {
name: GlossaryEntryDefinition,
properties: [
{ name: 'body' },
{ name: 'glos' },
{ name: 'name' }
]
};
}
case Group: {
return {
name: Group,
properties: [
{ name: 'ge' }
]
};
}
case Handler: {
return {
name: Handler,
properties: [
{ name: 'except' },
{ name: 'stmt' }
]
};
}
case If: {
return {
name: If,
properties: [
{ name: 'cond' },
{ name: 'else' },
{ name: 'statements', defaultValue: [] }
]
};
}
case Import: {
return {
name: Import,
properties: [
{ name: 'name' },
{ name: 'path' }
]
};
}
case JoinSpec: {
return {
name: JoinSpec,
properties: [
{ name: 'lhs' },
{ name: 'name' },
{ name: 'op' },
{ name: 'rhs' },
{ name: 'type' }
]
};
}
case KvPair: {
return {
name: KvPair,
properties: [
{ name: 'key' },
{ name: 'value' }
]
};
}
case KvPairs: {
return {
name: KvPairs,
properties: [
{ name: 'pairs', defaultValue: [] }
]
};
}
case Literal: {
return {
name: Literal,
properties: [
{ name: 'array' },
{ name: 'asyncFnCall' },
{ name: 'bool' },
{ name: 'fnCall' },
{ name: 'id' },
{ name: 'map' },
{ name: 'num' },
{ name: 'ref' },
{ name: 'str' }
]
};
}
case MapEntry: {
return {
name: MapEntry,
properties: [
{ name: 'key' },
{ name: 'value' }
]
};
}
case MapKey: {
return {
name: MapKey,
properties: [
{ name: 'bool' },
{ name: 'num' },
{ name: 'str' }
]
};
}
case MapLiteral: {
return {
name: MapLiteral,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case MetaDefinition: {
return {
name: MetaDefinition,
properties: [
{ name: 'spec' }
]
};
}
case ModuleDefinition: {
return {
name: ModuleDefinition,
properties: [
{ name: 'defs', defaultValue: [] },
{ name: 'imports', defaultValue: [] },
{ name: 'name' }
]
};
}
case NegExpr: {
return {
name: NegExpr,
properties: [
{ name: 'ne' }
]
};
}
case NodeDefinition: {
return {
name: NodeDefinition,
properties: [
{ name: 'alias' },
{ name: 'name' }
]
};
}
case NotExpr: {
return {
name: NotExpr,
properties: [
{ name: 'ne' }
]
};
}
case OneOfSpec: {
return {
name: OneOfSpec,
properties: [
{ name: 'ref' }
]
};
}
case Pattern: {
return {
name: Pattern,
properties: [
{ name: 'crudMap' },
{ name: 'delete' },
{ name: 'expr' },
{ name: 'forEach' },
{ name: 'fullTextSearch' },
{ name: 'if' },
{ name: 'purge' },
{ name: 'return' }
]
};
}
case PrePostTriggerDefinition: {
return {
name: PrePostTriggerDefinition,
properties: [
{ name: 'after' },
{ name: 'before' }
]
};
}
case PropertyDefinition: {
return {
name: PropertyDefinition,
properties: [
{ name: 'name' },
{ name: 'value' }
]
};
}
case PublicAgentDefinition: {
return {
name: PublicAgentDefinition,
properties: [
{ name: 'def' }
]
};
}
case PublicEventDefinition: {
return {
name: PublicEventDefinition,
properties: [
{ name: 'def' }
]
};
}
case PublicWorkflowDefinition: {
return {
name: PublicWorkflowDefinition,
properties: [
{ name: 'def' }
]
};
}
case Purge: {
return {
name: Purge,
properties: [
{ name: 'pattern' }
]
};
}
case RbacAllowSpec: {
return {
name: RbacAllowSpec,
properties: [
{ name: 'oprs', defaultValue: [] }
]
};
}
case RbacExpressionSpec: {
return {
name: RbacExpressionSpec,
properties: [
{ name: 'lhs' },
{ name: 'rhs' }
]
};
}
case RbacOpr: {
return {
name: RbacOpr,
properties: [
{ name: 'value' }
]
};
}
case RbacRolesSpec: {
return {
name: RbacRolesSpec,
properties: [
{ name: 'roles', defaultValue: [] }
]
};
}
case RbacSpecDefinition: {
return {
name: RbacSpecDefinition,
properties: [
{ name: 'specEntries', defaultValue: [] }
]
};
}
case RbacSpecEntries: {
return {
name: RbacSpecEntries,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case RbacSpecEntry: {
return {
name: RbacSpecEntry,
properties: [
{ name: 'allow' },
{ name: 'expr' },
{ name: 'role' }
]
};
}
case RecordDefinition: {
return {
name: RecordDefinition,
properties: [
{ name: 'extends' },
{ name: 'name' },
{ name: 'schema' }
]
};
}
case RecordExtraDefinition: {
return {
name: RecordExtraDefinition,
properties: [
{ name: 'actions' },
{ name: 'meta' },
{ name: 'prePost' },
{ name: 'rbacSpec' },
{ name: 'uq' }
]
};
}
case RecordSchemaDefinition: {
return {
name: RecordSchemaDefinition,
properties: [
{ name: 'attributes', defaultValue: [] },
{ name: 'extras', defaultValue: [] }
]
};
}
case RefSpec: {
return {
name: RefSpec,
properties: [
{ name: 'ref' },
{ name: 'type' }
]
};
}
case RelationshipDefinition: {
return {
name: RelationshipDefinition,
properties: [
{ name: 'name' },
{ name: 'nodes' },
{ name: 'properties', defaultValue: [] },
{ name: 'schema' },
{ name: 'type' }
]
};
}
case RelationshipPattern: {
return {
name: RelationshipPattern,
properties: [
{ name: 'name' },
{ name: 'pattern' }
]
};
}
case RelNodes: {
return {
name: RelNodes,
properties: [
{ name: 'node1' },
{ name: 'node2' }
]
};
}
case ResolverDefinition: {
return {
name: ResolverDefinition,
properties: [
{ name: 'methods', defaultValue: [] },
{ name: 'name' },
{ name: 'paths', defaultValue: [] }
]
};
}
case ResolverFnName: {
return {
name: ResolverFnName,
properties: [
{ name: 'name' }
]
};
}
case ResolverMethodName: {
return {
name: ResolverMethodName,
properties: [
{ name: 'name' }
]
};
}
case ResolverMethodSpec: {
return {
name: ResolverMethodSpec,
properties: [
{ name: 'fn' },
{ name: 'key' }
]
};
}
case RetryDefinition: {
return {
name: RetryDefinition,
properties: [
{ name: 'attempts' },
{ name: 'backoff' },
{ name: 'name' }
]
};
}
case Return: {
return {
name: Return,
properties: [
{ name: 'pattern' }
]
};
}
case RuntimeHint: {
return {
name: RuntimeHint,
properties: [
{ name: 'aliasSpec' },
{ name: 'catchSpec' },
{ name: 'thenSpec' }
]
};
}
case ScenarioDefinition: {
return {
name: ScenarioDefinition,
properties: [
{ name: 'body' },
{ name: 'name' },
{ name: 'scn' }
]
};
}
case SelectIntoEntry: {
return {
name: SelectIntoEntry,
properties: [
{ name: 'alias' },
{ name: 'attribute' }
]
};
}
case SelectIntoSpec: {
return {
name: SelectIntoSpec,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case SetAttribute: {
return {
name: SetAttribute,
properties: [
{ name: 'name' },
{ name: 'op' },
{ name: 'value' }
]
};
}
case StandaloneStatement: {
return {
name: StandaloneStatement,
properties: [
{ name: 'stmt' }
]
};
}
case Statement: {
return {
name: Statement,
properties: [
{ name: 'hints', defaultValue: [] },
{ name: 'pattern' }
]
};
}
case ThenSpec: {
return {
name: ThenSpec,
properties: [
{ name: 'statements', defaultValue: [] }
]
};
}
case TriggerDefinition: {
return {
name: TriggerDefinition,
properties: [
{ name: 'entries', defaultValue: [] }
]
};
}
case TriggerEntry: {
return {
name: TriggerEntry,
properties: [
{ name: 'async' },
{ name: 'event' },
{ name: 'on' }
]
};
}
case WorkflowDefinition: {
return {
name: WorkflowDefinition,
properties: [
{ name: 'header' },
{ name: 'name' },
{ name: 'statements', defaultValue: [] }
]
};
}
case WorkflowHeader: {
return {
name: WorkflowHeader,
properties: [
{ name: 'name' },
{ name: 'prefix' },
{ name: 'tag' }
]
};
}
default: {
return {
name: type,
properties: []
};
}
}
}
}
export const reflection = new AgentlangAstReflection();
//# sourceMappingURL=ast.js.map