Variables
Const bool
bool: RegExp = /true|false/
Const boolLine
boolLine: RegExp = new RegExp(`^${bool.source}$`, 'i')
Const doubleQuoted
doubleQuoted: RegExp = /"[^"]*"/
Const hash
hash: RegExp = new RegExp(`(?:${identifier.source})\\s*:\\s*(?:${value.source})`)
Const hashCapture
hashCapture: RegExp = new RegExp(`(${identifier.source})\\s*:\\s*(${value.source})`, 'g')
Const identifier
identifier: RegExp = /[\w-]+[?]?/
Const literal
literal: RegExp = new RegExp(`(?:${quoted.source}|${bool.source}|${number.source})`)
Const number
number: RegExp = /[+-]?(?:\d+\.?\d*|\.?\d+)/
Const numberLine
numberLine: RegExp = new RegExp(`^${number.source}$`)
Const operators
operators: RegExp[] = [/\s+or\s+/,/\s+and\s+/,/==|!=|<=|>=|<|>|\s+contains\s+/]
Const quoteBalanced
quoteBalanced: RegExp = new RegExp(`(?:${quoted.source}|[^'"])*`)
Const quoted
quoted: RegExp = new RegExp(`${singleQuoted.source}|${doubleQuoted.source}`)
Const quotedLine
quotedLine: RegExp = new RegExp(`^${quoted.source}$`)
Const range
range: RegExp = new RegExp(`\\(${rangeLimit.source}\\.\\.${rangeLimit.source}\\)`)
Const rangeCapture
rangeCapture: RegExp = new RegExp(`\\((${rangeLimit.source})\\.\\.(${rangeLimit.source})\\)`)
Const rangeLimit
rangeLimit: RegExp = new RegExp(`(?:${variable.source}|${number.source})`)
Const rangeLine
rangeLine: RegExp = new RegExp(`^${rangeCapture.source}$`)
Const singleQuoted
singleQuoted: RegExp = /'[^']*'/
Const subscript
subscript: RegExp = new RegExp(`\\[(?:${quoted.source}|[\\w-\\.]+)\\]`)
Const tagLine
tagLine: RegExp = new RegExp(`^\\s*(${identifier.source})\\s*([\\s\\S]*?)\\s*$`)
Const value
value: RegExp = new RegExp(`(?:${variable.source}|${literal.source}|${range.source})`)
Const variable
variable: RegExp = new RegExp(`${identifier.source}(?:\\.${identifier.source}|${subscript.source})*`)