package scpt import ( "github.com/alecthomas/participle/lexer" "github.com/alecthomas/participle/lexer/stateful" ) // Create custom stateful regex lexer var scptLexer = lexer.Must(stateful.NewSimple([]stateful.Rule{ {"Ident", `[a-zA-Z]\w*`, nil}, {"String", `"[^"]*"`, nil}, {"Number", `(?:\d*\.)?\d+`, nil}, {"Punct", `[-[!@$&()_{}\|:;"',.?/]|]`, nil}, {"Whitespace", `[ \t\r\n]+`, nil}, {"Comment", `#[^\n]+`, nil}, {"Operator", `(>=|<=|>|<|==|!=)|[-+*/^%]`, nil}, }))