Reorganize tests into a real spec suite

This commit is contained in:
2024-08-04 19:18:43 -03:00
parent 57c160173c
commit e7c2053222
693 changed files with 136 additions and 116 deletions

View File

@ -0,0 +1,17 @@
---input---
rule<-("terminal"/nonterminal/[cls])*
---tokens---
'rule' Name.Class
'<-' Operator
'(' Punctuation
'"terminal"' Literal.String.Double
'/' Operator
'nonterminal' Name.Class
'/' Operator
'[' Punctuation
'cls' Literal.String
']' Punctuation
')' Punctuation
'*' Operator
'\n' Text.Whitespace

View File

@ -0,0 +1,21 @@
# see for example:
# - http://textx.github.io/Arpeggio/
# - https://nim-lang.org/docs/pegs.html
# - https://github.com/erikrose/parsimonious
# can't handle parsimonious-style regex while ~ is a cut operator
---input---
~"regex" i"insensitive" "multimod"ilx ("not modified")
---tokens---
'~' Operator
'"regex"' Literal.String.Double
' ' Text
'i"insensitive"' Literal.String.Double
' ' Text
'"multimod"ilx' Literal.String.Double
' ' Text
'(' Punctuation
'"not modified"' Literal.String.Double
')' Punctuation
'\n' Text.Whitespace

View File

@ -0,0 +1,29 @@
# see for example:
# - https://github.com/gvanrossum/pegen
# - https://nim-lang.org/docs/pegs.html
---input---
rule = 'a' | 'b'
rule: 'a' ~ 'b'
---tokens---
'rule' Name.Class
' ' Text
'=' Operator
' ' Text
"'a'" Literal.String.Single
' ' Text
'|' Operator
' ' Text
"'b'" Literal.String.Single
'\n' Text.Whitespace
'rule' Name.Class
':' Operator
' ' Text
"'a'" Literal.String.Single
' ' Text
'~' Operator
' ' Text
"'b'" Literal.String.Single
'\n' Text.Whitespace