{"version":3,"file":"index.cjs","sources":["../src/parser.terms.js","../src/tokens.js","../src/highlight.js","../src/parser.js"],"sourcesContent":["// This file was generated by lezer-generator. You probably shouldn't edit it.\nexport const\n  propertyIdentifier = 121,\n  identifier = 122,\n  nameIdentifier = 123,\n  insertSemi = 124,\n  LineComment = 1,\n  BlockComment = 2,\n  Expression = 3,\n  expression0 = 128,\n  ForExpression = 4,\n  forExpressionStart = 131,\n  _for = 5,\n  ForInExpressions = 6,\n  ForInExpression = 7,\n  Name = 8,\n  Identifier = 9,\n  AdditionalIdentifier = 10,\n  minus = 11,\n  plus = 12,\n  divide = 13,\n  multi = 14,\n  exp = 15,\n  inExpressionSep = 136,\n  _in = 16,\n  IterationContext = 17,\n  forExpressionBodyStart = 139,\n  _return = 18,\n  IfExpression = 19,\n  ifExpressionStart = 140,\n  _if = 20,\n  then = 21,\n  _else = 22,\n  QuantifiedExpression = 23,\n  quantifiedExpressionStart = 141,\n  some = 24,\n  every = 25,\n  QuantifiedInExpressions = 26,\n  QuantifiedInExpression = 27,\n  satisfies = 28,\n  Disjunction = 29,\n  or = 30,\n  Conjunction = 31,\n  and = 32,\n  Comparison = 33,\n  between = 36,\n  PositiveUnaryTest = 37,\n  PositiveUnaryTests = 39,\n  ArithmeticExpression = 41,\n  arithmeticPlusStart = 145,\n  arithmeticTimesStart = 146,\n  arithmeticExpStart = 147,\n  arithmeticUnaryStart = 148,\n  InstanceOfExpression = 42,\n  instance = 43,\n  of = 44,\n  Type = 45,\n  QualifiedName = 46,\n  VariableName = 47,\n  BacktickIdentifier = 48,\n  SpecialType = 49,\n  days = 50,\n  time = 51,\n  duration = 52,\n  years = 53,\n  months = 54,\n  date = 55,\n  list = 58,\n  context = 61,\n  ContextEntryTypes = 62,\n  ContextEntryType = 63,\n  _function = 65,\n  ArgumentTypes = 66,\n  ArgumentType = 67,\n  PathExpression = 68,\n  pathExpressionStart = 154,\n  FilterExpression = 70,\n  filterExpressionStart = 155,\n  FunctionInvocation = 72,\n  functionInvocationStart = 156,\n  SpecialFunctionName = 73,\n  functionInvocationParameters = 157,\n  NamedParameters = 74,\n  NamedParameter = 75,\n  ParameterName = 76,\n  PositionalParameters = 77,\n  literal = 160,\n  nil = 161,\n  _null = 78,\n  NumericLiteral = 79,\n  StringLiteral = 80,\n  BooleanLiteral = 81,\n  DateTimeLiteral = 82,\n  DateTimeConstructor = 83,\n  AtLiteral = 84,\n  SimplePositiveUnaryTest = 86,\n  Interval = 87,\n  listStart = 168,\n  ParenthesizedExpression = 88,\n  List = 89,\n  FunctionDefinition = 90,\n  functionDefinitionStart = 170,\n  FormalParameters = 91,\n  FormalParameter = 92,\n  external = 93,\n  Context = 97,\n  contextStart = 172,\n  ContextEntry = 98,\n  Key = 99,\n  PropertyName = 100,\n  PropertyIdentifier = 101,\n  Expressions = 102,\n  UnaryTests = 103,\n  not = 105,\n  Dialect_camunda = 0\n","/* global console,process */\n\nimport { has, reduce } from 'min-dash';\n\nimport {\n  insertSemi,\n  Identifier,\n  functionDefinitionStart,\n  FunctionDefinition,\n  contextStart,\n  Context,\n  forExpressionStart,\n  forExpressionBodyStart,\n  ForExpression,\n  quantifiedExpressionStart,\n  QuantifiedExpression,\n  ContextEntry,\n  Name,\n  ForInExpression,\n  identifier,\n  VariableName,\n  expression0,\n  QuantifiedInExpression,\n  PositiveUnaryTest,\n  nameIdentifier,\n  propertyIdentifier,\n  PropertyIdentifier,\n  PropertyName,\n  StringLiteral,\n  BooleanLiteral,\n  NumericLiteral,\n  List,\n  listStart,\n  pathExpressionStart,\n  PathExpression,\n  ParameterName,\n  IfExpression,\n  ifExpressionStart,\n  filterExpressionStart,\n  FilterExpression,\n  ArithmeticExpression,\n  arithmeticPlusStart,\n  arithmeticTimesStart,\n  arithmeticExpStart,\n  arithmeticUnaryStart,\n  nil,\n  AdditionalIdentifier,\n  FunctionInvocation,\n  functionInvocationStart\n} from './parser.terms.js';\n\nimport {\n  ContextTracker,\n  ExternalTokenizer\n} from '@lezer/lr';\n\n// @ts-expect-error env access\nconst LOG_PARSE = typeof process != 'undefined' && process.env && /\\bfparse(:dbg)?\\b/.test(process.env.LOG);\n\n// @ts-expect-error env access\nconst LOG_PARSE_DEBUG = typeof process != 'undefined' && process.env && /\\bfparse:dbg\\b/.test(process.env.LOG);\n\n// @ts-expect-error env access\nconst LOG_VARS = typeof process != 'undefined' && process.env && /\\bcontext\\b/.test(process.env.LOG);\n\nconst spaceChars = [\n  9, 11, 12, 32, 133, 160,\n  5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198,\n  8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288\n];\n\nconst newlineChars = chars('\\n\\r');\n\nconst asterix = '*'.charCodeAt(0);\n\nconst additionalNameChars = chars(\"'./-+*^\");\n\n/**\n * @typedef { VariableContext | any } ContextValue\n */\n\n/**\n * @param { string } str\n * @return { number[] }\n */\nfunction chars(str) {\n  return Array.from(str).map(s => s.charCodeAt(0));\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isStartChar(ch) {\n  return (\n    ch === 63 // ?\n  ) || (\n    ch >= 65 && ch <= 90 // A-Z\n  ) || (\n    ch === 95 // _\n  ) || (\n    ch >= 97 && ch <= 122 // a-z\n  ) || (\n    ch >= 0xC0 && ch <= 0xD6\n  ) || (\n    ch >= 0xD8 && ch <= 0xF6\n  ) || (\n    ch >= 0xF8 && ch <= 0x2FF\n  ) || (\n    ch >= 0x370 && ch <= 0x37D\n  ) || (\n    ch >= 0x37F && ch <= 0x1FFF\n  ) || (\n    ch >= 0x200C && ch <= 0x200D\n  ) || (\n    ch >= 0x2070 && ch <= 0x218F\n  ) || (\n    ch >= 0x2C00 && ch <= 0x2FEF\n  ) || (\n    ch >= 0x3001 && ch <= 0xD7FF\n  ) || (\n    ch >= 0xF900 && ch <= 0xFDCF\n  ) || (\n    ch >= 0xFDF0 && ch <= 0xFFFD\n  ) || (\n    ch >= 0xD800 && ch <= 0xDBFF // upper surrogate\n  ) || (\n    ch >= 0xDC00 && ch <= 0xDFFF // lower surrogate\n  );\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isAdditional(ch) {\n  return additionalNameChars.includes(ch);\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isPartChar(ch) {\n  return (\n    ch >= 48 && ch <= 57 // 0-9\n  ) || (\n    ch === 0xB7\n  ) || (\n    ch >= 0x0300 && ch <= 0x036F\n  ) || (\n    ch >= 0x203F && ch <= 0x2040\n  );\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isSpace(ch) {\n  return spaceChars.includes(ch);\n}\n\nfunction indent(str, spaces) {\n  return spaces.concat(\n    str.split(/\\n/g).join('\\n' + spaces)\n  );\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param  { number } [offset]\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseAdditionalSymbol(input, offset = 0) {\n\n  const next = input.peek(offset);\n\n  if (next === asterix && input.peek(offset + 1) === asterix) {\n\n    return {\n      offset: 2,\n      token: '**'\n    };\n  }\n\n  if (isAdditional(next)) {\n    return {\n      offset: 1,\n      token: String.fromCharCode(next)\n    };\n  }\n\n  return null;\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param { number } [offset]\n * @param { boolean } [namePart]\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseIdentifier(input, offset = 0, namePart = false) {\n  for (let inside = false, chars = [], i = 0;; i++) {\n    const next = input.peek(offset + i);\n\n    if (isStartChar(next) || ((inside || namePart) && isPartChar(next))) {\n      if (!inside) {\n        inside = true;\n      }\n\n      chars.push(next);\n    } else {\n\n      if (chars.length) {\n        return {\n          token: String.fromCharCode(...chars),\n          offset: i\n        };\n      }\n\n      return null;\n    }\n  }\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param  { number } offset\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseSpaces(input, offset) {\n\n  for (let inside = false, i = 0;; i++) {\n    let next = input.peek(offset + i);\n\n    if (isSpace(next)) {\n      if (!inside) {\n        inside = true;\n      }\n    } else {\n      if (inside) {\n        return {\n          token: ' ',\n          offset: i\n        };\n      }\n\n      return null;\n    }\n  }\n}\n\n/**\n * Parse a name from the input and return the first match, if any.\n *\n * @param { import('@lezer/lr').InputStream } input\n * @param { Variables } variables\n *\n * @return { { token: string, offset: number, term: number } | null }\n */\nfunction parseName(input, variables) {\n  const contextKeys = variables.contextKeys();\n\n  const start = variables.tokens;\n\n  for (let i = 0, tokens = [], nextMatch = null;;) {\n\n    const namePart = (start.length + tokens.length) > 0;\n    const maybeSpace = tokens.length > 0;\n\n    const match = (\n      parseIdentifier(input, i, namePart) ||\n      namePart && parseAdditionalSymbol(input, i) ||\n      maybeSpace && parseSpaces(input, i)\n    );\n\n    // match is required\n    if (!match) {\n      return nextMatch;\n    }\n\n    const {\n      token,\n      offset\n    } = match;\n\n    i += offset;\n\n    if (token === ' ') {\n      continue;\n    }\n\n    tokens = [ ...tokens, token ];\n\n    const name = [ ...start, ...tokens ].join(' ');\n\n    if (contextKeys.some(el => el === name)) {\n      const token = tokens[0];\n\n      nextMatch = {\n        token,\n        offset: token.length,\n        term: nameIdentifier\n      };\n    }\n\n    if (contextKeys.some(el => el.startsWith(name))) {\n      continue;\n    }\n\n    if (dateTimeIdentifiers.some(el => el === name)) {\n      const token = tokens[0];\n\n      // parse date time identifiers as normal\n      // identifiers to allow specialization to kick in\n      //\n      // cf. https://github.com/nikku/lezer-feel/issues/8\n      nextMatch = {\n        token,\n        offset: token.length,\n        term: identifier\n      };\n    }\n\n    if (dateTimeIdentifiers.some(el => el.startsWith(name))) {\n      continue;\n    }\n\n    return nextMatch;\n  }\n\n}\n\nconst identifiersMap = {\n  [ identifier ]: 'identifier',\n  [ nameIdentifier ]: 'nameIdentifier'\n};\n\nexport const identifiers = new ExternalTokenizer((input, stack) => {\n\n  LOG_PARSE_DEBUG && console.log('%s: T <identifier | nameIdentifier>', input.pos);\n\n  const nameMatch = parseName(input, stack.context);\n\n  const start = stack.context.tokens;\n\n  const match = nameMatch || parseIdentifier(input, 0, start.length > 0);\n\n  if (match) {\n    input.advance(match.offset);\n    input.acceptToken(nameMatch ? nameMatch.term : identifier);\n\n    LOG_PARSE && console.log('%s: MATCH <%s> <%s>', input.pos, nameMatch ? identifiersMap[nameMatch.term] : 'identifier', match.token);\n  }\n}, { contextual: true });\n\n\nexport const propertyIdentifiers = new ExternalTokenizer((input, stack) => {\n\n  LOG_PARSE_DEBUG && console.log('%s: T <propertyIdentifier>', input.pos);\n\n  const start = stack.context.tokens;\n\n  const match = parseIdentifier(input, 0, start.length > 0);\n\n  if (match) {\n    input.advance(match.offset);\n    input.acceptToken(propertyIdentifier);\n\n    LOG_PARSE && console.log('%s: MATCH <propertyIdentifier> <%s>', input.pos, match.token);\n  }\n});\n\n\nexport const insertSemicolon = new ExternalTokenizer((input, stack) => {\n\n  LOG_PARSE_DEBUG && console.log('%s: T <insertSemi>', input.pos);\n\n  let offset;\n  let insert = false;\n\n  for (offset = 0;; offset++) {\n    const char = input.peek(offset);\n\n    if (spaceChars.includes(char)) {\n      continue;\n    }\n\n    if (newlineChars.includes(char)) {\n      insert = true;\n    }\n\n    break;\n  }\n\n  if (insert) {\n\n    const identifier = parseIdentifier(input, offset + 1);\n    const spaces = parseSpaces(input, offset + 1);\n\n    if (spaces || identifier && /^(then|else|return|satisfies)$/.test(identifier.token)) {\n      return;\n    }\n\n    LOG_PARSE && console.log('%s: MATCH <insertSemi>', input.pos);\n    input.acceptToken(insertSemi);\n  }\n});\n\nconst prefixedContextStarts = {\n  [ functionInvocationStart ]: 'FunctionInvocation',\n  [ filterExpressionStart ]: 'FilterExpression',\n  [ pathExpressionStart ]: 'PathExpression'\n};\n\nconst contextStarts = {\n  [ contextStart ]: 'Context',\n  [ functionDefinitionStart ]: 'FunctionDefinition',\n  [ forExpressionStart ]: 'ForExpression',\n  [ listStart ]: 'List',\n  [ ifExpressionStart ]: 'IfExpression',\n  [ quantifiedExpressionStart ]: 'QuantifiedExpression'\n};\n\nconst contextEnds = {\n  [ Context ]: 'Context',\n  [ FunctionDefinition ]: 'FunctionDefinition',\n  [ ForExpression ]: 'ForExpression',\n  [ List ]: 'List',\n  [ IfExpression ]: 'IfExpression',\n  [ QuantifiedExpression ]: 'QuantifiedExpression',\n  [ PathExpression ]: 'PathExpression',\n  [ FunctionInvocation ]: 'FunctionInvocation',\n  [ FilterExpression ]: 'FilterExpression',\n  [ ArithmeticExpression ]: 'ArithmeticExpression'\n};\n\n/**\n * A simple producer that retrievs a value from\n * a given context. Used to lazily take things.\n */\nclass ValueProducer {\n\n  /**\n   * @param { Function } fn\n   */\n  constructor(fn) {\n    this.fn = fn;\n  }\n\n  get(variables) {\n    return this.fn(variables);\n  }\n\n  /**\n   * @param { Function } fn\n   *\n   * @return { ValueProducer }\n   */\n  static of(fn) {\n    return new ValueProducer(fn);\n  }\n\n}\n\nconst dateTimeLiterals = {\n  'date and time': 1,\n  'date': 1,\n  'time': 1,\n  'duration': 1\n};\n\nconst dateTimeIdentifiers = Object.keys(dateTimeLiterals);\n\n\n/**\n * A basic key-value store to hold context values.\n */\nexport class VariableContext {\n\n  /**\n   * Creates a new context from a JavaScript object.\n   *\n   * @param {any} [value]\n   */\n  constructor(value = {}) {\n\n    /**\n     * @protected\n     */\n    this.value = value;\n  }\n\n  /**\n   * Return all defined keys of the context.\n   *\n   * @returns {Array<string>} the keys of the context\n   */\n  getKeys() {\n    return Object.keys(this.value);\n  }\n\n  /**\n   * Returns the value of the given key.\n   *\n   * If the value represents a context itself, it should be wrapped in a\n   * context class.\n   *\n   * @param {String} key\n   * @returns {VariableContext|ValueProducer|null}\n   */\n  get(key) {\n    const result = this.value[key];\n\n    const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n    if (constructor.isAtomic(result)) {\n      return result;\n    }\n\n    return constructor.of(result);\n  }\n\n  /**\n   * Creates a new context with the given key added.\n   *\n   * @param {String} key\n   * @param {any} value\n   *\n   * @returns {VariableContext} new context with the given key added\n   */\n  set(key, value) {\n\n    const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n    return constructor.of({\n      ...this.value,\n      [key]: value\n    });\n  }\n\n  /**\n   * Non-destructively merge another context into this one,\n   * and return the result.\n   *\n   * @param {ContextValue} other\n   *\n   * @return {VariableContext}\n   */\n  merge(other) {\n    const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n    return new constructor(\n      constructor.__merge(this.value, other)\n    );\n  }\n\n  /**\n   * Wether the given value is atomic. Non-atomic values need to be wrapped in a\n   * context Class.\n   *\n   * @param {any} value\n   * @returns {Boolean}\n   */\n  static isAtomic(value) {\n    return !value ||\n          value instanceof this ||\n          value instanceof ValueProducer ||\n          typeof value !== 'object';\n  }\n\n  /**\n   * Takes any number of Contexts and merges them into a single context.\n   *\n   * @param { ...VariableContext } contexts\n   * @returns { VariableContext }\n   */\n  static of(...contexts) {\n    return contexts.reduce((context, otherContext) => {\n      return context.merge(otherContext);\n    }, new this({}));\n  }\n\n  /**\n   * Returns the raw representation of the given context.\n   *\n   * @param {VariableContext | any} context\n   *\n   * @return {any}\n   */\n  static __unwrap(context) {\n    if (!context) {\n      return {};\n    }\n\n    if (context instanceof this) {\n      return context.value;\n    }\n\n    if (typeof context !== 'object') {\n      return {};\n    }\n\n    return { ...context };\n  }\n\n  /**\n   * Non-destructively merges two contexts (or their values)\n   * with each other, returning the result.\n   *\n   * @param {ContextValue} context\n   * @param {ContextValue} other\n   *\n   * @return {any}\n   */\n  static __merge(context, other) {\n\n    return reduce(this.__unwrap(other), (merged, value, key) => {\n      if (value instanceof ValueProducer) {\n\n        // keep value producers in tact\n        return {\n          ...merged,\n          [key]: value\n        };\n      }\n\n      value = this.__unwrap(value);\n\n      if (has(merged, key)) {\n        value = this.__merge(this.__unwrap(merged[key]), value);\n      }\n\n      return {\n        ...merged,\n        [key]: value\n      };\n    }, this.__unwrap(context));\n  }\n\n}\n\nclass Variables {\n\n  /**\n   * @param { {\n   *   name?: string,\n   *   tokens?: string[],\n   *   children?: Variables[],\n   *   parent: Variables | null\n   *   context: VariableContext,\n   *   value?: any,\n   *   raw?: any\n   * } } options\n   */\n  constructor({\n    name = 'Expressions',\n    tokens = [],\n    children = [],\n    parent = null,\n    context,\n    value,\n    raw\n  }) {\n    this.name = name;\n    this.tokens = tokens;\n    this.children = children;\n    this.parent = parent;\n    this.context = context;\n    this.value = value;\n    this.raw = raw;\n  }\n\n  enterScope(name) {\n\n    const childScope = this.of({\n      name,\n      parent: this\n    });\n\n    LOG_VARS && console.log('[%s] enter', childScope.path, childScope.context);\n\n    return childScope;\n  }\n\n  exitScope(str) {\n\n    if (!this.parent) {\n      LOG_VARS && console.log('[%s] NO exit %o\\n%s', this.path, this.context, indent(str, '  '));\n\n      return this;\n    }\n\n    LOG_VARS && console.log('[%s] exit %o\\n%s', this.path, this.context, indent(str, '  '));\n\n    return this.parent.pushChild(this);\n  }\n\n  token(part) {\n\n    LOG_VARS && console.log('[%s] token <%s> + <%s>', this.path, this.tokens.join(' '), part);\n\n    return this.assign({\n      tokens: [ ...this.tokens, part ]\n    });\n  }\n\n  literal(value) {\n\n    LOG_VARS && console.log('[%s] literal %o', this.path, value);\n\n    return this.pushChild(this.of({\n      name: 'Literal',\n      value\n    }));\n  }\n\n  /**\n   * Return computed scope value\n   *\n   * @return {any}\n   */\n  computedValue() {\n    for (let scope = this;;scope = last(scope.children)) {\n\n      if (!scope) {\n        return null;\n      }\n\n      if (scope.value) {\n        return scope.value;\n      }\n    }\n  }\n\n  contextKeys() {\n    return this.context.getKeys().map(normalizeContextKey);\n  }\n\n  get path() {\n    return this.parent?.path?.concat(' > ', this.name) || this.name;\n  }\n\n  /**\n   * Return value of variable.\n   *\n   * @param { string } variable\n   * @return { any } value\n   */\n  get(variable) {\n\n    const names = [ variable, variable && normalizeContextKey(variable) ];\n\n    const contextKey = this.context.getKeys().find(\n      key => names.includes(normalizeContextKey(key))\n    );\n\n    if (typeof contextKey === 'undefined') {\n      return undefined;\n    }\n\n    const val = this.context.get(contextKey);\n\n    if (val instanceof ValueProducer) {\n      return val.get(this);\n    } else {\n      return val;\n    }\n  }\n\n  resolveName() {\n\n    const variable = this.tokens.join(' ');\n    const tokens = [];\n\n    const parentScope = this.assign({\n      tokens\n    });\n\n    const variableScope = this.of({\n      name: 'VariableName',\n      parent: parentScope,\n      value: this.get(variable),\n      raw: variable\n    });\n\n    LOG_VARS && console.log('[%s] resolve name <%s=%s>', variableScope.path, variable, this.get(variable));\n\n    return parentScope.pushChild(variableScope);\n  }\n\n  pushChild(child) {\n\n    if (!child) {\n      return this;\n    }\n\n    const parent = this.assign({\n      children: [ ...this.children, child ]\n    });\n\n    child.parent = parent;\n\n    return parent;\n  }\n\n  pushChildren(children) {\n\n    /**\n     * @type {Variables}\n     */\n    let parent = this;\n\n    for (const child of children) {\n      parent = parent.pushChild(child);\n    }\n\n    return parent;\n  }\n\n  declareName() {\n\n    if (this.tokens.length === 0) {\n      throw Error('no tokens to declare name');\n    }\n\n    const variableName = this.tokens.join(' ');\n\n    LOG_VARS && console.log('[%s] declareName <%s>', this.path, variableName);\n\n    return this.assign({\n      tokens: []\n    }).pushChild(\n      this.of({\n        name: 'Name',\n        value: variableName\n      })\n    );\n  }\n\n  define(name, value) {\n\n    if (typeof name !== 'string') {\n      LOG_VARS && console.log('[%s] no define <%s=%s>', this.path, name, value);\n\n      return this;\n    }\n\n    LOG_VARS && console.log('[%s] define <%s=%s>', this.path, name, value);\n\n    const context = this.context.set(name, value);\n\n    return this.assign({\n      context\n    });\n  }\n\n  /**\n   * @param { Record<string, any> } [options]\n   *\n   * @return { Variables }\n   */\n  assign(options = {}) {\n\n    return Variables.of({\n      ...this,\n      ...options\n    });\n  }\n\n  /**\n   * @param { Record<string, any> } [options]\n   *\n   * @return { Variables }\n   */\n  of(options = {}) {\n\n    const defaultOptions = {\n      context: this.context,\n      parent: this.parent\n    };\n\n    return Variables.of({\n      ...defaultOptions,\n      ...options\n    });\n  }\n\n  /**\n   * @param { {\n   *   name?: string,\n   *   tokens?: string[],\n   *   children?: Variables[],\n   *   parent?: Variables | null\n   *   context: VariableContext,\n   *   value?: any,\n   *   raw?: any\n   * } } options\n   *\n   * @return {Variables}\n   */\n  static of(options) {\n\n    const {\n      name,\n      tokens = [],\n      children = [],\n      parent = null,\n      context,\n      value,\n      raw\n    } = options;\n\n    if (!context) {\n      throw new Error('must provide <context>');\n    }\n\n    return new Variables({\n      name,\n      tokens: [ ...tokens ],\n      children: [ ...children ],\n      context,\n      parent,\n      value,\n      raw\n    });\n  }\n\n}\n\n/**\n * @param { string } name\n *\n * @return { string } normalizedName\n */\nexport function normalizeContextKey(name) {\n  return name.replace(/\\s*([./\\-'+]|\\*\\*?)\\s*/g, ' $1 ').replace(/\\s{2,}/g, ' ').trim();\n}\n\n/**\n * Wrap children of variables under the given named child.\n *\n * @param { Variables } variables\n * @param { string } scopeName\n * @param { string } code\n * @return { Variables }\n */\nfunction wrap(variables, scopeName, code) {\n\n  const parts = variables.children.filter(c => c.name !== scopeName);\n  const children = variables.children.filter(c => c.name === scopeName);\n\n  const namePart = parts[0];\n  const valuePart = parts[Math.max(1, parts.length - 1)];\n\n  const name = namePart?.computedValue();\n  const value = valuePart?.computedValue() || null;\n\n  return variables\n    .assign({\n      children\n    })\n    .enterScope(scopeName)\n    .pushChildren(parts)\n    .exitScope(code)\n    .define(name, value);\n}\n\n/**\n * @param { ContextValue } [context]\n * @param { typeof VariableContext } [Context]\n *\n * @return { ContextTracker<Variables> }\n */\nexport function trackVariables(context = {}, Context = VariableContext) {\n\n  const start = Variables.of({\n    context: Context.of(context)\n  });\n\n  return new ContextTracker({\n    start,\n    reduce(variables, term, stack, input) {\n\n      if (term === IfExpression) {\n        const [ thenPart, elsePart ] = variables.children.slice(-2);\n\n        variables = variables.assign({\n          value: Context.of(\n            thenPart?.computedValue(),\n            elsePart?.computedValue()\n          )\n        });\n      }\n\n      if (term === List) {\n        variables = variables.assign({\n          value: Context.of(\n            ...variables.children.map(\n              c => c?.computedValue()\n            )\n          )\n        });\n      }\n\n      if (term === FilterExpression) {\n        const [ sourcePart, _ ] = variables.children.slice(-2);\n\n        variables = variables.assign({\n          value: sourcePart?.computedValue()\n        });\n      }\n\n      if (term === FunctionInvocation) {\n\n        const [\n          name,\n          ...args\n        ] = variables.children;\n\n        // preserve type information through `get value(context, key)` utility\n        if (name?.raw === 'get value') {\n          variables = getContextValue(variables, args);\n        }\n      }\n\n      const start = contextStarts[term];\n\n      if (start) {\n        return variables.enterScope(start);\n      }\n\n      const prefixedStart = prefixedContextStarts[term];\n\n      // pull <expression> into new <prefixedStart> context\n      if (prefixedStart) {\n\n        const {\n          children: currentChildren,\n          context: currentContext,\n        } = variables;\n\n        const children = currentChildren.slice(0, -1);\n        const lastChild = last(currentChildren);\n\n        let newContext = null;\n\n        if (term === pathExpressionStart) {\n          newContext = Context.of(lastChild?.computedValue());\n        }\n\n        if (term === filterExpressionStart) {\n          newContext = Context.of(\n            currentContext,\n            lastChild?.computedValue()\n          ).set('item', lastChild?.computedValue());\n        }\n\n        return variables\n          .assign({ children })\n          .enterScope(prefixedStart)\n          .pushChild(lastChild)\n          .assign({ context: newContext || currentContext });\n      }\n\n      // @ts-expect-error internal method\n      const code = input.read(input.pos, stack.pos);\n\n      const end = contextEnds[term];\n\n      if (end) {\n        return variables.exitScope(code);\n      }\n\n      if (term === ContextEntry) {\n        const parts = variables.children.filter(c => c.name !== 'ContextEntry');\n\n        const name = parts[0];\n        const value = last(parts);\n\n        return wrap(variables, 'ContextEntry', code).assign(\n          {\n            value: Context\n              .of(variables.value)\n              .set(name?.computedValue(), value?.computedValue())\n          }\n        );\n      }\n\n      if (\n        term === ForInExpression ||\n        term === QuantifiedInExpression\n      ) {\n        return wrap(variables, 'InExpression', code);\n      }\n\n      // define <partial> within ForExpression body\n      if (term === forExpressionBodyStart) {\n\n        return variables.define(\n          'partial',\n          ValueProducer.of(variables => {\n            return last(variables.children)?.computedValue();\n          })\n        );\n      }\n\n      if (\n        term === ParameterName\n      ) {\n        const name = last(variables.children).computedValue();\n\n        // TODO: attach type information\n        return variables.define(name, 1);\n      }\n\n      // pull <expression> into ArithmeticExpression child\n      if (\n        term === arithmeticPlusStart ||\n        term === arithmeticTimesStart ||\n        term === arithmeticExpStart\n      ) {\n        const children = variables.children.slice(0, -1);\n        const lastChild = last(variables.children);\n\n        return variables.assign({\n          children\n        }).enterScope('ArithmeticExpression').pushChild(lastChild);\n      }\n\n      if (term === arithmeticUnaryStart) {\n        return variables.enterScope('ArithmeticExpression');\n      }\n\n      if (\n        term === Identifier ||\n        term === AdditionalIdentifier ||\n        term === PropertyIdentifier\n      ) {\n        return variables.token(code);\n      }\n\n      if (\n        term === StringLiteral\n      ) {\n        return variables.literal(code.replace(/^\"|\"$/g, ''));\n      }\n\n      if (term === BooleanLiteral) {\n        return variables.literal(code === 'true' ? true : false);\n      }\n\n      if (term === NumericLiteral) {\n        return variables.literal(parseFloat(code));\n      }\n\n      if (term === nil) {\n        return variables.literal(null);\n      }\n\n      if (\n        term === VariableName\n      ) {\n        return variables.resolveName();\n      }\n\n      if (\n        term === Name ||\n        term === PropertyName\n      ) {\n        return variables.declareName();\n      }\n\n      if (\n        term === expression0 ||\n        term === PositiveUnaryTest\n      ) {\n        if (variables.tokens.length > 0) {\n          throw new Error('uncleared name');\n        }\n      }\n\n      if (term === expression0) {\n\n        let parent = variables;\n\n        while (parent.parent) {\n          parent = parent.exitScope(code);\n        }\n\n        return parent;\n      }\n\n      return variables;\n    }\n  });\n}\n\nexport const variableTracker = trackVariables({});\n\n\n// helpers //////////////\n\nfunction getContextValue(variables, args) {\n\n  if (!args.length) {\n    return variables.assign({\n      value: null\n    });\n  }\n\n  if (args[0].name === 'Name') {\n    args = extractNamedArgs(args, [ 'm', 'key' ]);\n  }\n\n  if (args.length !== 2) {\n    return variables.assign({\n      value: null\n    });\n  }\n\n  const [\n    context,\n    key\n  ] = args;\n\n  const keyValue = key?.computedValue();\n  const contextValue = context?.computedValue();\n\n  if (\n    (!contextValue || typeof contextValue !== 'object') || typeof keyValue !== 'string'\n  ) {\n    return variables.assign({\n      value: null\n    });\n  }\n\n  return variables.assign({\n    value: [ normalizeContextKey(keyValue), keyValue ].reduce((value, keyValue) => {\n      return contextValue.get(keyValue) || value;\n    }, null)\n  });\n}\n\nfunction extractNamedArgs(args, argNames) {\n\n  const context = {};\n\n  for (let i = 0; i < args.length; i += 2) {\n    const [ name, value ] = args.slice(i, i + 2);\n\n    context[name.value] = value;\n  }\n\n  return argNames.map(name => context[name]);\n}\n\nfunction last(arr) {\n  return arr[arr.length - 1];\n}","import { styleTags, tags as t } from '@lezer/highlight';\n\nexport const feelHighlighting = styleTags({\n  StringLiteral: t.string,\n  NumericLiteral: t.number,\n  BooleanLiteral: t.bool,\n  'AtLiteral!': t.special(t.string),\n  CompareOp: t.compareOperator,\n  ArithOp: t.arithmeticOperator,\n  'for if then else some every satisfies between return': t.controlKeyword,\n  'in instance of and or': t.operatorKeyword,\n  function: t.definitionKeyword,\n  as: t.keyword,\n  'Type/...': t.typeName,\n  Wildcard: t.special(t.variableName),\n  null: t.null,\n  LineComment: t.lineComment,\n  BlockComment: t.blockComment,\n  'VariableName! \"?\"': t.variableName,\n  'DateTimeConstructor! SpecialFunctionName!': t.function(t.special(t.variableName)),\n  'List Interval': t.list,\n  Context: t.definition(t.literal),\n  'Name!': t.definition(t.variableName),\n  'Key/Name! ContextEntryType/Name!': t.definition(t.propertyName),\n  'PathExpression/VariableName!': t.function(t.propertyName),\n  'FormalParameter/ParameterName!': t.function(t.definition(t.variableName)),\n  '( )': t.paren,\n  '[ ]': t.squareBracket,\n  '{ }': t.brace,\n  '.': t.derefOperator,\n  ', ;': t.separator,\n  '..': t.punctuation\n});","// This file was generated by lezer-generator. You probably shouldn't edit it.\nimport {LRParser} from \"@lezer/lr\"\nimport {propertyIdentifiers, identifiers, insertSemicolon, variableTracker} from \"./tokens.js\"\nimport {feelHighlighting} from \"./highlight.js\"\nconst spec_identifier = {__proto__:null,for:10, in:32, return:36, if:40, then:42, else:44, some:48, every:50, satisfies:56, or:60, and:64, between:72, instance:86, of:89, days:101, time:103, duration:105, years:107, months:109, date:111, list:117, context:123, function:130, null:156, true:332, false:332, \"?\":170, external:186, not:211}\nexport const parser = LRParser.deserialize({\n  version: 14,\n  states: \"C|O`QYOOO`QYOOO$yQYOOOOQU'#Ce'#CeO%TQYO'#C`O&^QYO'#FQOOQQ'#Ff'#FfO&hQYO'#FfO`QYO'#DVOOQU'#En'#EnO(_Q^O'#D]OOQU'#D^'#D^OOQU'#D]'#D]OOQO'#Fn'#FnO*[QWO'#DvOOQQ'#D}'#D}OOQQ'#EO'#EOOOQQ'#EP'#EPO*aOWO'#ESO*[QWO'#EQOOQQ'#EQ'#EQOOQQ'#Ft'#FtOOQQ'#Fr'#FrOOQQ'#Fz'#FzOOQQ'#EU'#EUO`QYO'#EWOOQQ'#FS'#FSO*iQ^O'#FSO,`QYO'#EXO,gQWO'#EYOOQP'#GO'#GOO,lQXO'#EaOOQQ'#F{'#F{OOQQ'#FR'#FRQOQWOOOOQQ'#FT'#FTOOQQ'#F^'#F^O`QYO'#CoOOQQ'#F_'#F_O%TQYO'#CsO,zQYO'#DwOOQQ'#Fs'#FsO-PQYO'#EROOQO'#ER'#ERO`QYO'#EVO`QYO'#EUOOQO'#F|'#F|Q-XQWOOO-^QYO'#DRO.TQWO'#FbOOQO'#DT'#DTO.`QYO'#FfO.gQWOOO/^QYO'#CdO/kQYO'#FVOOQQ'#Cc'#CcO/pQYO'#FUOOQQ'#Cb'#CbO/xQYO,58zO`QYO,59iOOQQ'#Fc'#FcOOQQ'#Fd'#FdOOQQ'#Fe'#FeO`QYO,59qO`QYO,59qO`QYO,59qOOQQ'#Fl'#FlO/}QYO,5:^OOQQ'#Fm'#FmO`QYO,5:`O`QYO,59eO`QYO,59gO`QYO,59iO1|QYO,59iO2TQYO,59rOOQQ,5:i,5:iO2YQYO,59qOOQU-E8l-E8lO3|QYO'#FoOOQQ,5:b,5:bOOQQ,5:n,5:nOOQQ,5:l,5:lO4TQYO,5:rOOQQ,5;n,5;nO4_QYO,5:qO4lQWO,5:sO4qQYO,5:tOOQP'#Ee'#EeO5hQXO'#EdOOQO'#Ec'#EcO5oQWO'#EbO5tQWO'#GPO5|QWO,5:{O6RQYO,59ZO/kQYO'#FaOOQQ'#Cw'#CwO6YQYO'#F`OOQQ'#Cv'#CvO6bQYO,59_O6gQYO,5:cO6lQYO,5:mO4WQYO,5:qO6qQYO,5:pO`QYO'#EwQ-XQWOOO`QYO'#EmO7hQWO,5;|O`QYOOOOQR'#Cf'#CfOOQQ'#Ej'#EjO8bQYO,59OO`QYO,5;qOOQQ'#FY'#FYO%TQYO'#EkO8rQYO,5;pO`QYO1G.fOOQQ'#F]'#F]O9iQYO1G/TO<`QYO1G/]O<jQYO1G/]O<tQYO1G/]OOQQ1G/x1G/xO>hQYO1G/zO>oQYO1G/PO?xQYO1G/ROARQYO1G/TO`QYO1G/TOOQQ1G/T1G/TOAiQYO1G/^OBWQ^O'#CdOCjQYO'#FqOOQO'#Dz'#DzOCtQWO'#DyOCyQWO'#FpOOQO'#Dx'#DxOOQO'#D{'#D{ODRQWO,5<ZOOQQ1G0^1G0^O`QYO1G0]O`QYO'#EsODWQWO,5<]OOQQ1G0_1G0_ODcQWO'#E[ODnQWO'#F}OOQO'#EZ'#EZODvQWO1G0`OOQP'#Eu'#EuOD{QXO,5;OO`QYO,5:|OESQXO'#EvOE_QWO,5<kOOQQ1G0g1G0gO`QYO1G.uO`QYO,5;{O%TQYO'#ElOEgQYO,5;zO`QYO1G.yOEoQYO1G/}OOQO1G0X1G0XOOQO,5;c,5;cOOQO-E8u-E8uOOQO,5;X,5;XOOQO-E8k-E8kOEtQWOOOOQQ-E8h-E8hOEyQYO'#CmOOQQ1G1]1G1]OOQQ,5;V,5;VOOQQ-E8i-E8iOFWQYO7+$QOOQQ7+%f7+%fO`QYO7+$oOF}QYO,5:rOG[QWO7+$oOGaQYO'#D[OOQQ'#DZ'#DZOITQYO'#D_OIYQYO'#D_OI_QYO'#D_OIdQ`O'#DgOIiQ`O'#DjOInQ`O'#DnOOQQ7+$x7+$xO`QYO,5:eO%TQYO'#ErOIsQWO,5<[OOQQ1G1u1G1uOJyQYO7+%wOKWQYO,5;_OOQO-E8q-E8qOAiQYO,5:vO%TQYO'#EtOKeQWO,5<iOKmQYO7+%zOOQP-E8s-E8sOKtQYO1G0hOOQO,5;b,5;bOOQO-E8t-E8tOLOQYO7+$aOLVQYO1G1gOOQQ,5;W,5;WOOQQ-E8j-E8jOLaQYO7+$eOOQO7+%i7+%iO`QYO,59XOMWQYO<<HZOOQQ<<HZ<<HZO/}QYO'#EoONaQYO,59vO!!TQYO,59yO!!YQYO,59yO!!_QYO,59yO!!dQYO,5:RO%TQYO,5:UO!#RQbO,5:YO!#YQYO1G0POOQO,5;^,5;^OOQO-E8p-E8pO!#dQYO<<IcOOQQ<<Ic<<IcOOQO1G0b1G0bOOQO,5;`,5;`OOQO-E8r-E8rO!&fQYO'#E^OOQQ<<If<<IfO`QYO<<IfO`QYO<<G{O!']QYO1G.sOOQQ,5;Z,5;ZOOQQ-E8m-E8mO!'gQYO1G/eOOQQ1G/e1G/eO!'lQbO'#D]O!'}Q`O'#D[O!(YQ`O1G/mO!(_QWO'#DmO!(dQ`O'#FhOOQO'#Dl'#DlO!(lQ`O1G/pOOQO'#Dq'#DqO!(qQ`O'#FjOOQO'#Dp'#DpO!(yQ`O1G/tOOQQAN?QAN?QO!)OQYOAN=gOOQQ7+%P7+%PO!)uQ`O,59vOOQQ7+%X7+%XO!!dQYO,5:XO%TQYO'#EpO!*QQ`O,5<SOOQQ7+%[7+%[O!!dQYO'#EqO!*YQ`O,5<UO!*bQ`O7+%`OOQO1G/s1G/sOOQO,5;[,5;[OOQO-E8n-E8nOOQO,5;],5;]OOQO-E8o-E8oOAiQYO<<HzOOQQAN>fAN>fO/}QYO'#EoO!!dQYO<<HzO!*gQ`O7+%`O!*lQ`O1G/tO!#RQbO,5:YO!*qQ`O'#Dn\",\n  stateData: \"!+U~O#rOS#sOSPOSQOS~OTsOZVO[UOdtOhvOivOr}Os}OviO!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$k`O$laO$mbO~OTsO[UOdtOhvOivOr}Os}OviO!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$k`O$laO$mbO~OZ!TO#]!UO~P#VO#nRO#oRO~OZ!^O[!^O]!_O^!_O_!`O`!kOn!hOp!iOr!]Os!]Ot!jO{!lO!i!fO#z!dOv$bX~O#l#tX$t#tX~P%]O$i!mOT$YXZ$YX[$YXd$YXh$YXi$YXr$YXs$YXv$YX!T$YX!U$YX!V$YX!X$YX!c$YX!g$YX!i$YX!p$YX!w$YX#S$YX#n$YX#o$YX$Z$YX$j$YX$k$YX$l$YX$m$YX~O#nRO#oROZ!PX[!PX]!PX^!PX_!PX`!PXn!PXp!PXr!PXs!PXt!PXv!PX{!PX!i!PX#l!PX#p!PX#z!PX$t!PX$O!PXx!PX#}!PX!g!PXe!PXb!PX#R!PXf!PXl!PX~Ov!pO~O$j`O$k`O~O#p!uOZ#vX[#vX]#vX^#vX_#vX`#vXn#vXp#vXr#vXs#vXt#vXv#vX{#vX!i#vX#l#vX#z#vX$t#vX$O#vXx#vX#}#vX!g#vXe#vXb#vX#R#vXf#vXl#vX~O!g$eP~P`Ov!xO~O#m!yO$j`O$k`O#R$sP~Op#VO~Op#WOv!uX~O$t#ZO~O#luX$OuX$tuXxuX#}uX!guXeuXbuX#RuXfuXluX~P%]O$O#]O#l$UXx$UX~O#l#[X~P&hOv#_O~OZ#`O[#`O]#`O^#`O_#`O#nRO#oRO#z#`O#{#`O$]WX~O`WXxWX$OWX~P.lO`#dO~O$O#eOb#xX~Ob#hO~O#nRO#oRO$ZZO~OTsOZVO[UOdtOhvOivOr}Os}O!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$k`O$laO$mbO~Ov#rO~P0YO|#tO~O{!lO!i!fO#z!dOZya[ya]ya^ya_ya`yanyapyaryasyatyav$bX#lya$tya$Oyaxya#}ya!gyaeyabya#Ryafyalya~Ox$eP~P`Ox#}O#}$OO~P%]O#}$OO$O$PO!g$eX~P%]O!g$RO~O#nRO#oROx$qP~OZ#`O[#`O]#`O^#`O_#`O#m!yO#z#`O#{#`O~O$]#WX~P4|O$]$YO~O$O$ZO#R$sX~O#R$]O~Oe$^O~P%]O$O$`Ol$SX~Ol$bO~O!W$cO~O!T$dO~O#l!xa$t!xa$O!xax!xa#}!xa!g!xae!xab!xa#R!xaf!xal!xa~P%]O$O#]O#l$Uax$Ua~OZ#`O[#`O]#`O^#`O_#`O#nRO#oRO#z#`O#{#`O~O`Wa$]WaxWa$OWa~P7sO$O#eOb#xa~OZ!^O[!^O]!_O^!_O_!`O{!lO!i!fO#z!dOv$bX~O`qinqipqirqisqitqi#lqi$tqi$Oqixqi#}qi!gqieqibqi#Rqifqilqi~P8zO_!`O{!lO!i!fO#z!dOZyi[yi`yinyipyiryisyityiv$bX#lyi$tyi$Oyixyi#}yi!gyieyibyi#Ryifyilyi~O]!_O^!_O~P:rO]yi^yi~P:rO{!lO!i!fO#z!dOZyi[yi]yi^yi_yi`yinyipyiryisyityiv$bX#lyi$tyi$Oyixyi#}yi!gyieyibyi#Ryifyilyi~O!g$pO~P%]O`!kOp!iOr!]Os!]Ot!jOnmi#lmi$tmi$Omixmi#}mi!gmiemibmi#Rmifmilmi~P8zO`!kOr!]Os!]Ot!jOnoipoi#loi$toi$Ooixoi#}oi!goieoiboi#Roifoiloi~P8zO`!kOn!hOp$qOr!]Os!]Ot!jO~P8zO!S$vO!V$wO!X$xO![$yO!_$zO!c${O#nRO#oRO$ZZO~OZ#bX[#bX]#bX^#bX_#bX`#bXn#bXp#bXr#bXs#bXt#bXv#bXx#bX{#bX!i#bX#n#bX#o#bX#p#bX#z#bX$O#bX~P.lO$O$POx$eX~P%]O$]$}O~O$O%OOx$dX~Ox%QO~O$O$PO!g$eax$ea~O$]%UOx#OX$O#OX~O$O%VOx$qX~Ox%XO~O$]#Wa~P4|O#m!yO$j`O$k`O~O$O$ZO#R$sa~O$O$`Ol$Sa~O!U%cO~OxrO~O#}%dObaX$OaX~P%]O#lSq$tSq$OSqxSq#}Sq!gSqeSqbSq#RSqfSqlSq~P%]Ox#}O#}$OO$OuX~P%]Ox%fO~O#z%gOZ!OX[!OX]!OX^!OX_!OX`!OXn!OXp!OXr!OXs!OXt!OXv!OX{!OX!i!OX#l!OX$t!OX$O!OXx!OX#}!OX!g!OXe!OXb!OX#R!OXf!OXl!OX~Op%iO~Op%jO~Op%kO~O!]%lO~O!]%mO~O!]%nO~O$O%OOx$da~OZ!^O[!^O]!_O^!_O_!`O`!kOn!hOp!iOr!]Os!]Ot!jO{!lO#z!dOv$bX~Ox%sO!g%sO!i%rO~PI{O!g#ga$O#gax#ga~P%]O$O%VOx$qa~O#P%yO~P`O#R#Ui$O#Ui~P%]Of%zO~P%]Ol$Ti$O$Ti~P%]O#lgq$tgq$Ogqxgq#}gq!ggqegqbgq#Rgqfgqlgq~P%]O`qynqypqyrqysqytqy#lqy$tqy$Oqyxqy#}qy!gqyeqybqy#Rqyfqylqy~P8zO#z%gOZ!Oa[!Oa]!Oa^!Oa_!Oa`!Oan!Oap!Oar!Oas!Oat!Oav!Oa{!Oa!i!Oa#l!Oa$t!Oa$O!Oax!Oa#}!Oa!g!Oae!Oab!Oa#R!Oaf!Oal!Oa~O!T&OO~O!W&OO~O!T&PO~O!S$vO!V$wO!X$xO![$yO!_$zO!c&uO#nRO#oRO$ZZO~O!Y$^P~P!!dOx!mi$O!mi~P%]OT$aXZ$aX[$aX]!yy^!yy_!yy`!yyd$aXh$aXi$aXn!yyp!yyr$aXs$aXt!yyv$aX{!yy!T$aX!U$aX!V$aX!X$aX!c$aX!g$aX!i$aX!p$aX!w$aX#S$aX#l!yy#n$aX#o$aX#z!yy$Z$aX$i$aX$j$aX$k$aX$l$aX$m$aX$t!yy$O!yyx!yy#}!yye!yyb!yy#R!yyf!yyl!yy~O#l#QX$t#QX$O#QXx#QX#}#QX!g#QXe#QXb#QX#R#QXf#QXl#QX~P%]Obai$Oai~P%]O!U&_O~O#nRO#oRO!Y!PX#z!PX$O!PX~O#z&pO!Y!OX$O!OX~O!Y&aO~O$]&bO~O$O&cO!Y$[X~O!Y&eO~O$O&fO!Y$^X~O!Y&hO~O#lc!R$tc!R$Oc!Rxc!R#}c!R!gc!Rec!Rbc!R#Rc!Rfc!Rlc!R~P%]O#z&pO!Y!Oa$O!Oa~O$O&cO!Y$[a~O$O&fO!Y$^a~O$_&nO~O$_&qO~O!Y&rO~O!]&tO~O$Z$j~$j$k_^$i#zQP]Q~\",\n  goto: \"E}$tPPPP$uP%n%q%w&Z'tPPPPPP'}P$uPPP$uPP(Q(TP$uP$uP$uPPP(ZP(fP$u$uPP(o)U)a*n)UPPPPPPP)UPP)UP+s+v)UP+|,S$uP$uP$u,Z-S-V-]-SP-e.^-e-e/^0VP$u1O$u1w1w2p2sP2yPP1w3P3V/Y3ZPP3cP3f3m3s3y4P5[5f5l5r5x6P6V6]6cPPPPPPPP6i6r8y9r:k:nPP:rPP:x:{;t<m<p<t<y=h>W>wP?pP?sP?w@jA]BUB[B_$uBeBePPPPPC^8yDVEOEREz!mjOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR![SQ!YSR$m#eS!WS#eS#Qw$`W#w!p!x%O%VT&T%m&c#WXOPQWYilu|}!]!a!b!c!e!g!h!i!j!k#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%l%n%y%z&Q&b&f&n&p&q&tb!VSw!x#e$`%O%V%m&cU#a!V#b#uR#u!pU#a!V#b#uT$W!z$XR$l#cR#UwQ#SwR%`$`U!RQ#_#rQ#s!kR$g#]QrQQ$i#_R$s#rQ$|#tQ%t%UQ&S%lU&X%n&f&tQ&i&bT&o&n&qc$u#t%U%l%n&b&f&n&q&t!lkOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ#m!eU$t#t%U&nS%|%g&p]&R%l%n&b&f&q&t#V[OPQWilu|}!]!a!b!c!e!g!h!i!j!k!p#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%l%n%y%z&b&f&n&p&q&tR&W%mQ&U%mR&j&cQ&[%nR&s&tS&Y%n&tR&l&f!m]OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#|!pQ#y!pR%p%OS#x!p%OT$S!x%V!meOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!leOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ!rbT!{o$Z!mcOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mdOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mhOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mpOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR$V!xQ$T!xR%u%VQ%x%XR&]%yQ!}oR%[$ZT!|o$ZS!zo$ZT$W!z$XRrQS#b!V#uR$j#bQ#f!YR$n#fQ$a#SR%a$aQ#^!RR$h#^!vYOPQWilu|}!]!a!b!c!e!g!h!i!j!k!p#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%y%z&nS!oY&Q_&Q%l%n&b&f&p&q&tQ%h$tS%}%h&`R&`&RQ&d&UR&k&dQ&g&YR&m&gQ%P#yR%q%PS$Q!v#vR%T$QQ%W$TR%v%WQ$X!zR%Y$XQ$[!}R%]$[Q#[!PR$f#[QrOQ!PPR$e#ZUTOP#ZW!QQ!k#]#_Q!nWQ!tiQ!vlQ#PuQ#X|Q#Y}Q#i!]Q#j!aQ#k!bQ#l!cQ#n!gQ#o!hQ#p!iQ#q!jQ#v!pQ$k#cQ$o#gQ$r#rQ%R$OQ%S$PQ%Z$YQ%^$^Q%_$_Q%b$bQ%e$qQ%o$}S%w%X%yQ%{%dR&^%z!mqOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mSOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR!ZST!XS#eQ#c!WR$_#QR#g![!muOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mwOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#TwT#Rw$`V!SQ#_#r!X!aT!Q!t!v#P#X#Y#i#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!Z!bT!Q!t!v#P#X#Y#i#j#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!]!cT!Q!t!v#P#X#Y#i#j#k#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!mWOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR&V%mT&Z%n&t!a!eT!Q!n!t!v#P#X#Y#i#j#k#l#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!a!gT!Q!n!t!v#P#X#Y#i#j#k#l#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!m^OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ!q^R!scR#z!pQ!wlR#{!p!mfOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mlOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mmOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR$U!x!moOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#Oo\",\n  nodeNames: \"⚠ LineComment BlockComment Expression ForExpression for InExpressions InExpression Name Identifier Identifier ArithOp ArithOp ArithOp ArithOp ArithOp in IterationContext return IfExpression if then else QuantifiedExpression some every InExpressions InExpression satisfies Disjunction or Conjunction and Comparison CompareOp CompareOp between PositiveUnaryTest ( PositiveUnaryTests ) ArithmeticExpression InstanceOfExpression instance of Type QualifiedName VariableName BacktickIdentifier SpecialType days time duration years months date > ListType list < ContextType context ContextEntryTypes ContextEntryType FunctionType function ArgumentTypes ArgumentType PathExpression ] FilterExpression [ FunctionInvocation SpecialFunctionName NamedParameters NamedParameter ParameterName PositionalParameters null NumericLiteral StringLiteral BooleanLiteral DateTimeLiteral DateTimeConstructor AtLiteral ? SimplePositiveUnaryTest Interval ParenthesizedExpression List FunctionDefinition FormalParameters FormalParameter external FunctionBody } { Context ContextEntry Key Name Identifier Expressions UnaryTests Wildcard not\",\n  maxTerm: 174,\n  context: variableTracker,\n  nodeProps: [\n    [\"group\", -17,4,19,23,29,31,33,41,42,68,70,72,85,86,88,89,90,97,\"Expr\",47,\"Expr Expr\",-5,78,79,80,81,82,\"Expr Literal\"],\n    [\"closedBy\", 38,\")\",71,\"]\",96,\"}\"],\n    [\"openedBy\", 40,\"(\",69,\"[\",95,\"{\"]\n  ],\n  propSources: [feelHighlighting],\n  skippedNodes: [0,1,2],\n  repeatNodeCount: 14,\n  tokenData: \"2t~RvXY#iYZ$^Z[#i]^$^pq#iqr$crs$nwx*[xy*ayz*fz{*k{|*x|}*}}!O+S!O!P+a!P!Q,k!Q![.f![!].}!]!^/S!^!_/X!_!`$i!`!a/h!b!c/r!}#O/w#P#Q/|#Q#R*s#S#T0R#o#p2j#q#r2o$f$g#i#BY#BZ#i$IS$I_#i$I|$I}$^$I}$JO$^$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~#nY#r~XY#iZ[#ipq#i$f$g#i#BY#BZ#i$IS$I_#i$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~$cO#s~~$fP!_!`$i~$nOr~~$qXOY$nYZ%^Zr$nrs'us#O$n#O#P'|#P;'S$n;'S;=`)c<%lO$n~%aVOr%^rs%vs#O%^#O#P%{#P;'S%^;'S;=`'S<%lO%^~%{O$j~~&OWOr%^rs&hs#O%^#O#P%{#P;'S%^;'S;=`'Y;=`<%l%^<%lO%^~&mV$j~Or%^rs%vs#O%^#O#P%{#P;'S%^;'S;=`'S<%lO%^~'VP;=`<%l%^~']WOr%^rs%vs#O%^#O#P%{#P;'S%^;'S;=`'S;=`<%l%^<%lO%^~'|O$j~$k~~(PYOY$nYZ$nZr$nrs(os#O$n#O#P'|#P;'S$n;'S;=`)i;=`<%l$n<%lO$n~(vX$j~$k~OY$nYZ%^Zr$nrs'us#O$n#O#P'|#P;'S$n;'S;=`)c<%lO$n~)fP;=`<%l$n~)lYOY$nYZ%^Zr$nrs'us#O$n#O#P'|#P;'S$n;'S;=`)c;=`<%l$n<%lO$n~*aO#{~~*fOv~~*kOx~~*pP^~z{*s~*xO_~~*}O[~~+SO$O~R+XPZP!`!a+[Q+aO$_Q~+fQ#z~!O!P+l!Q![+q~+qO#}~~+vR$i~!Q![+q!g!h,P#X#Y,P~,SR{|,]}!O,]!Q![,c~,`P!Q![,c~,hP$i~!Q![,c~,pQ]~z{,v!P!Q-}~,yTOz,vz{-Y{;'S,v;'S;=`-w<%lO,v~-]VOz,vz{-Y{!P,v!P!Q-r!Q;'S,v;'S;=`-w<%lO,v~-wOQ~~-zP;=`<%l,v~.SSP~OY-}Z;'S-};'S;=`.`<%lO-}~.cP;=`<%l-}~.kS$i~!O!P.w!Q![.f!g!h,P#X#Y,P~.zP!Q![+q~/SO$]~~/XO$t~R/`P!]QsP!_!`/cP/hOsPR/oP!YQsP!_!`/c~/wO$m~~/|O!i~~0RO!g~~0UVO#O0R#O#P0k#P#S0R#S#T1r#T;'S0R;'S;=`1w<%lO0R~0nWO#O0R#O#P0k#P#S0R#S#T1W#T;'S0R;'S;=`1};=`<%l0R<%lO0R~1]V$Z~O#O0R#O#P0k#P#S0R#S#T1r#T;'S0R;'S;=`1w<%lO0R~1wO$Z~~1zP;=`<%l0R~2QWO#O0R#O#P0k#P#S0R#S#T1r#T;'S0R;'S;=`1w;=`<%l0R<%lO0R~2oO#S~~2tO#R~\",\n  tokenizers: [propertyIdentifiers, identifiers, insertSemicolon, 0, 1],\n  topRules: {\"Expression\":[0,3],\"Expressions\":[1,102],\"UnaryTests\":[2,103]},\n  dialects: {camunda: 2568},\n  dynamicPrecedences: {\"31\":-1,\"68\":1,\"72\":-1,\"74\":-1},\n  specialized: [{term: 122, get: (value) => spec_identifier[value] || -1}],\n  tokenPrec: 2571\n})\n"],"names":["ExternalTokenizer","reduce","has","ContextTracker","styleTags","t","LRParser"],"mappings":"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"}