Demo

The JavaScript token grammar of this module, drawn from its rules. Follow a track from left to right; a pill is text the input holds, and a box is another diagram — select it to go there.

token

number

0Xxhex_nBb01_nn.0 … 9_Ee+-0 … 9_1 … 9_0 … 9n.0 … 9_Ee+-0 … 9_

string

double

"space!# … [] … U+10FFFFescape"

single

'space … &( … [] … U+10FFFF\"'/\bfnrtuhexhexhexhex'

template

templateContent

templateAfterDollar

{`$templateAfterDollartemplateEscapetemplateContentU+0000 … #% … []^_a … z| … U+10FFFFtemplateContent

templateEscape

\u{hex}hexhexhexhexxhexhexU+0000 … 0: … tvwy … U+10FFFF

id

a … zA … Z_$a … zA … Z_$0 … 9

slash

//U+0000 … \tU+000BU+000CU+000E … U+2027U+202A … U+10FFFF*content=

content

starU+0000 … )+ … U+2027U+202A … U+10FFFFcontent

star

*/starU+0000 … )+ … .0 … U+2027U+202A … U+10FFFFcontent

operator

...=>==!==>>>===<<==+=+-=-**==%=&&==||==^=~??=.[]{}(),:;

ws

\tspace

newLine

\n\r

escape

\"/\bfnrtuhexhexhexhex

hex

0 … 9A … Fa … f

Emergent Testing

Idle. Press Run to start the suite.

  • ./proof.f.mjs