UNPKG

harmonyc

Version:

Harmony Code - model-driven BDD for Vitest

75 lines (74 loc) 2.6 kB
export var T; (function (T) { T["Newline"] = "newline"; T["Comment"] = "comment"; /** the => */ T["ResponseArrow"] = "=>"; T["ErrorMark"] = "!!"; T["Words"] = "words"; T["Minus"] = "-"; T["Plus"] = "+"; T["Colon"] = ":"; T["Space"] = "space"; T["OpeningBracket"] = "["; T["ClosingBracket"] = "]"; T["OpeningBrace"] = "{"; T["ClosingBrace"] = "}"; T["And"] = "&"; T["Slash"] = "/"; T["Semicolon"] = ";"; T["DoubleQuoteString"] = "double-quote string"; T["UnclosedDoubleQuoteString"] = "unclosed double-quote string"; T["BacktickString"] = "backtick string"; T["UnclosedBacktickString"] = "unclosed backtick string"; T["InvalidEmptyBacktickString"] = "invalid empty backtick string"; T["InvalidWhitespace"] = "invalid whitespace"; T["InvalidTab"] = "invalid tab"; T["MultilineString"] = "multiline string"; T["InvalidMultilineStringMark"] = "invalid multiline string mark"; T["Variable"] = "variable"; T["InvalidEmptyVariable"] = "invalid empty variable"; T["UnclosedVariable"] = "unclosed variable"; })(T || (T = {})); const rules = [ // false = ignore token // if multiple patterns match, the former wins // patterns must be y (sticky) [true, /\n/y, T.Newline], [true, /\t/y, T.InvalidTab], [true, /[\x00-\x1f]/y, T.InvalidWhitespace], [true, /^( )*[+]( |$)/my, T.Plus], [true, /^( )*[-]( |$)/my, T.Minus], [false, / /y, T.Space], [false, /(#|\/\/).*?(?=\n|$)/y, T.Comment], [true, /:(?=\s*(?:\n|$))/y, T.Colon], [true, /\[/y, T.OpeningBracket], [true, /\]/y, T.ClosingBracket], [true, /\{/y, T.OpeningBrace], [true, /\}/y, T.ClosingBrace], [true, /\//y, T.Slash], [true, /&/y, T.And], [true, /;/y, T.Semicolon], [true, /!!/y, T.ErrorMark], [true, /=>/y, T.ResponseArrow], [ true, /"(?:[^"\\\n]|\\(?:[bfnrtv"\\/]|u[0-9a-fA-F]{4}))*"/y, T.DoubleQuoteString, ], [ true, /"(?:[^"\\\n]|\\(?:[bfnrtv"\\/]|u[0-9a-fA-F]{4}))*/y, T.UnclosedDoubleQuoteString, ], [true, /``/y, T.InvalidEmptyBacktickString], [true, /`[^`]+`/y, T.BacktickString], [true, /`[^`]*/y, T.UnclosedBacktickString], [true, /\$\{[^}\n]+\}/y, T.Variable], [true, /\$\{\}/y, T.InvalidEmptyVariable], [true, /\$\{[^}\n]*/y, T.UnclosedVariable], [true, /\|(?: .*|(?=\n|$))/y, T.MultilineString], [true, /\|[^ \n]/y, T.InvalidMultilineStringMark], [true, /.+?(?=[\[\]"`|#{}&/;]|\$\{|$|=>|!!|:\s*$)/my, T.Words], ]; export default rules;