import * from whitespace;
import * from json;
import * from "./my-language.well";
Imports
on:import {
let parses = 0;
export function GetParseCount(){
return parses;
}
}on:new {
parses++;
}
Lifecycle Hooks
lexer {
[string]
- import singleQuoteString, doubleQuoteString
[singleQuoteString]
- when \r "'" tag "squote" highlight "string" goto singleQuoteStringEnd
[singleQuoteStringEnd]
- when \r "\\[\\\/bnrft]" tag "escaped"
- when \r "\\'" tag "quoteEscape"
- when \r "\\u[A-Fa-f\d]{4}" tag "escaped"
- when \r "\\." tag "badEscape"
- when \r "[^'\\]+" tag "string" highlight "string"
- when "'" tag "squote" highlight "string" pop
[doubleQuoteString] span {
[start]
- when "\"" tag "dquote" highlight "string"
[span]
- when \r '\\[\\\/bnrft]' tag "escaped" highlight "constant"
- when \r '\\"' tag "quoteEscape"
- when \r '\\u[A-Fa-f\d]{4}' tag "escaped" highlight "constant"
- when \r '\\.' tag "badEscape"
- when \r '[^"\\]+' tag "string" highlight "string"
[stop]
- when "\"" tag "dquote" highlight "string"
}
}
Lexer
grammar {
[Start]
| HelloGoodbye __ Target
[HelloGoodbye]
| "Hello"
| "Goodbye"
[Target]
| "World"
| \r "[a-zA-Z]+"
[__]
<ws>
}
Grammar