Skip to content

Commit

Permalink
Improve dsl test
Browse files Browse the repository at this point in the history
  • Loading branch information
bachish committed Nov 8, 2023
1 parent 305ca6a commit 5485c87
Show file tree
Hide file tree
Showing 4 changed files with 171 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
StartState(id=6,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=6,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=10,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
State(id=7,nonterminal=Nonterminal("S1"),isStart=true,isFinal=false)
State(id=11,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
State(id=8,nonterminal=Nonterminal("S2"),isStart=true,isFinal=false)
State(id=12,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
State(id=9,nonterminal=Nonterminal("S3"),isStart=true,isFinal=false)
State(id=13,nonterminal=Nonterminal("S1"),isStart=false,isFinal=false)
State(id=17,nonterminal=Nonterminal("S2"),isStart=false,isFinal=false)
State(id=21,nonterminal=Nonterminal("S3"),isStart=false,isFinal=false)
State(id=14,nonterminal=Nonterminal("S1"),isStart=false,isFinal=false)
State(id=18,nonterminal=Nonterminal("S2"),isStart=false,isFinal=false)
State(id=22,nonterminal=Nonterminal("S3"),isStart=false,isFinal=false)
State(id=15,nonterminal=Nonterminal("S1"),isStart=false,isFinal=false)
State(id=19,nonterminal=Nonterminal("S2"),isStart=false,isFinal=false)
State(id=23,nonterminal=Nonterminal("S3"),isStart=false,isFinal=false)
State(id=16,nonterminal=Nonterminal("S1"),isStart=false,isFinal=true)
State(id=20,nonterminal=Nonterminal("S2"),isStart=false,isFinal=true)
State(id=24,nonterminal=Nonterminal("S3"),isStart=false,isFinal=true)
NonterminalEdge(tail=6,head=10,nonterminal=Nonterminal("S1"))
NonterminalEdge(tail=6,head=11,nonterminal=Nonterminal("S2"))
NonterminalEdge(tail=6,head=12,nonterminal=Nonterminal("S3"))
TerminalEdge(tail=7,head=13,terminal=Terminal("("))
TerminalEdge(tail=8,head=17,terminal=Terminal("["))
TerminalEdge(tail=9,head=21,terminal=Terminal("{"))
NonterminalEdge(tail=13,head=14,nonterminal=Nonterminal("S"))
NonterminalEdge(tail=17,head=18,nonterminal=Nonterminal("S"))
NonterminalEdge(tail=21,head=22,nonterminal=Nonterminal("S"))
TerminalEdge(tail=14,head=15,terminal=Terminal(")"))
TerminalEdge(tail=18,head=19,terminal=Terminal("]"))
TerminalEdge(tail=22,head=23,terminal=Terminal("}"))
NonterminalEdge(tail=15,head=16,nonterminal=Nonterminal("S"))
NonterminalEdge(tail=19,head=20,nonterminal=Nonterminal("S"))
NonterminalEdge(tail=23,head=24,nonterminal=Nonterminal("S"))

7 changes: 7 additions & 0 deletions src/test/kotlin/grammar/combinator/dsl/generated/aMany.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
StartState(id=1,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=1,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=0,nonterminal=Nonterminal("A"),isStart=true,isFinal=false)
State(id=2,nonterminal=Nonterminal("A"),isStart=false,isFinal=true)
NonterminalEdge(tail=1,head=1,nonterminal=Nonterminal("A"))
TerminalEdge(tail=0,head=2,terminal=Terminal("a"))

9 changes: 9 additions & 0 deletions src/test/kotlin/grammar/combinator/dsl/generated/many.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
StartState(id=3,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=3,nonterminal=Nonterminal("S"),isStart=true,isFinal=true)
State(id=4,nonterminal=Nonterminal("S"),isStart=false,isFinal=false)
State(id=5,nonterminal=Nonterminal("S"),isStart=false,isFinal=true)
TerminalEdge(tail=3,head=3,terminal=Terminal("a"))
TerminalEdge(tail=3,head=4,terminal=Terminal("a"))
TerminalEdge(tail=4,head=5,terminal=Terminal("b"))
TerminalEdge(tail=5,head=4,terminal=Terminal("a"))

119 changes: 119 additions & 0 deletions src/test/kotlin/grammar/combinator/dsl/generated/while.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
StartState(id=25,nonterminal=Nonterminal("Program"),isStart=true,isFinal=false)
State(id=25,nonterminal=Nonterminal("Program"),isStart=true,isFinal=false)
State(id=35,nonterminal=Nonterminal("Program"),isStart=false,isFinal=true)
State(id=26,nonterminal=Nonterminal("SeqStatement"),isStart=true,isFinal=false)
State(id=36,nonterminal=Nonterminal("SeqStatement"),isStart=false,isFinal=true)
State(id=27,nonterminal=Nonterminal("Statement"),isStart=true,isFinal=false)
State(id=37,nonterminal=Nonterminal("SeqStatement"),isStart=false,isFinal=false)
State(id=40,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=41,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=42,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=43,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=44,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=45,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=39,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=32,nonterminal=Nonterminal("Id"),isStart=true,isFinal=false)
State(id=38,nonterminal=Nonterminal("SeqStatement"),isStart=false,isFinal=true)
State(id=55,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=54,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=28,nonterminal=Nonterminal("NumExpr"),isStart=true,isFinal=false)
State(id=52,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=49,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=30,nonterminal=Nonterminal("BoolExp"),isStart=true,isFinal=false)
State(id=46,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=56,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=81,nonterminal=Nonterminal("Id"),isStart=false,isFinal=true)
State(id=57,nonterminal=Nonterminal("NumExpr"),isStart=false,isFinal=true)
State(id=29,nonterminal=Nonterminal("NumTerm"),isStart=true,isFinal=false)
State(id=58,nonterminal=Nonterminal("NumExpr"),isStart=false,isFinal=false)
State(id=53,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=50,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=68,nonterminal=Nonterminal("BoolExp"),isStart=false,isFinal=true)
State(id=31,nonterminal=Nonterminal("BoolTerm"),isStart=true,isFinal=false)
State(id=69,nonterminal=Nonterminal("BoolExp"),isStart=false,isFinal=false)
State(id=47,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=82,nonterminal=Nonterminal("Id"),isStart=false,isFinal=true)
State(id=63,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=false)
State(id=61,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=true)
State(id=33,nonterminal=Nonterminal("NumVar"),isStart=true,isFinal=false)
State(id=62,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=false)
State(id=59,nonterminal=Nonterminal("NumExpr"),isStart=false,isFinal=false)
State(id=51,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=false)
State(id=73,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=false)
State(id=74,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=false)
State(id=72,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=true)
State(id=34,nonterminal=Nonterminal("BoolVar"),isStart=true,isFinal=false)
State(id=75,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=false)
State(id=70,nonterminal=Nonterminal("BoolExp"),isStart=false,isFinal=false)
State(id=48,nonterminal=Nonterminal("Statement"),isStart=false,isFinal=true)
State(id=64,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=false)
State(id=83,nonterminal=Nonterminal("NumVar"),isStart=false,isFinal=true)
State(id=66,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=false)
State(id=60,nonterminal=Nonterminal("NumExpr"),isStart=false,isFinal=true)
State(id=79,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=false)
State(id=78,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=true)
State(id=85,nonterminal=Nonterminal("BoolVar"),isStart=false,isFinal=true)
State(id=86,nonterminal=Nonterminal("BoolVar"),isStart=false,isFinal=true)
State(id=76,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=false)
State(id=71,nonterminal=Nonterminal("BoolExp"),isStart=false,isFinal=true)
State(id=65,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=true)
State(id=84,nonterminal=Nonterminal("NumVar"),isStart=false,isFinal=true)
State(id=67,nonterminal=Nonterminal("NumTerm"),isStart=false,isFinal=true)
State(id=80,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=true)
State(id=77,nonterminal=Nonterminal("BoolTerm"),isStart=false,isFinal=true)
NonterminalEdge(tail=25,head=35,nonterminal=Nonterminal("SeqStatement"))
NonterminalEdge(tail=26,head=36,nonterminal=Nonterminal("Statement"))
TerminalEdge(tail=36,head=37,terminal=Terminal(";"))
TerminalEdge(tail=27,head=40,terminal=Terminal("skip"))
TerminalEdge(tail=27,head=41,terminal=Terminal("print"))
TerminalEdge(tail=27,head=42,terminal=Terminal("print"))
TerminalEdge(tail=27,head=43,terminal=Terminal("{"))
TerminalEdge(tail=27,head=44,terminal=Terminal("if"))
TerminalEdge(tail=27,head=45,terminal=Terminal("while"))
NonterminalEdge(tail=27,head=39,nonterminal=Nonterminal("Id"))
NonterminalEdge(tail=37,head=38,nonterminal=Nonterminal("SeqStatement"))
TerminalEdge(tail=41,head=55,terminal=Terminal("...any..text..."))
NonterminalEdge(tail=42,head=54,nonterminal=Nonterminal("NumExpr"))
NonterminalEdge(tail=43,head=52,nonterminal=Nonterminal("SeqStatement"))
NonterminalEdge(tail=44,head=49,nonterminal=Nonterminal("BoolExp"))
NonterminalEdge(tail=45,head=46,nonterminal=Nonterminal("BoolExp"))
TerminalEdge(tail=39,head=56,terminal=Terminal(":="))
TerminalEdge(tail=32,head=81,terminal=Terminal("a..z"))
NonterminalEdge(tail=28,head=57,nonterminal=Nonterminal("NumTerm"))
NonterminalEdge(tail=28,head=58,nonterminal=Nonterminal("NumExpr"))
TerminalEdge(tail=52,head=53,terminal=Terminal("}"))
TerminalEdge(tail=49,head=50,terminal=Terminal("then"))
NonterminalEdge(tail=30,head=68,nonterminal=Nonterminal("BoolTerm"))
NonterminalEdge(tail=30,head=69,nonterminal=Nonterminal("BoolExp"))
TerminalEdge(tail=46,head=47,terminal=Terminal("do"))
NonterminalEdge(tail=81,head=82,nonterminal=Nonterminal("Id"))
TerminalEdge(tail=29,head=63,terminal=Terminal("("))
NonterminalEdge(tail=29,head=61,nonterminal=Nonterminal("NumVar"))
NonterminalEdge(tail=29,head=62,nonterminal=Nonterminal("NumTerm"))
TerminalEdge(tail=58,head=59,terminal=Terminal("+"))
TerminalEdge(tail=58,head=59,terminal=Terminal("-"))
NonterminalEdge(tail=50,head=51,nonterminal=Nonterminal("Statement"))
TerminalEdge(tail=31,head=73,terminal=Terminal("("))
TerminalEdge(tail=31,head=74,terminal=Terminal("not"))
NonterminalEdge(tail=31,head=72,nonterminal=Nonterminal("BoolVar"))
NonterminalEdge(tail=31,head=75,nonterminal=Nonterminal("BoolTerm"))
TerminalEdge(tail=69,head=70,terminal=Terminal("or"))
NonterminalEdge(tail=47,head=48,nonterminal=Nonterminal("Statement"))
NonterminalEdge(tail=63,head=64,nonterminal=Nonterminal("NumExpr"))
TerminalEdge(tail=33,head=83,terminal=Terminal("0..9"))
TerminalEdge(tail=62,head=66,terminal=Terminal("*"))
TerminalEdge(tail=62,head=66,terminal=Terminal("/"))
NonterminalEdge(tail=59,head=60,nonterminal=Nonterminal("NumTerm"))
TerminalEdge(tail=51,head=47,terminal=Terminal("else"))
NonterminalEdge(tail=73,head=79,nonterminal=Nonterminal("BoolExp"))
NonterminalEdge(tail=74,head=78,nonterminal=Nonterminal("BoolExp"))
TerminalEdge(tail=34,head=85,terminal=Terminal("false"))
TerminalEdge(tail=34,head=86,terminal=Terminal("true"))
TerminalEdge(tail=75,head=76,terminal=Terminal("and"))
NonterminalEdge(tail=70,head=71,nonterminal=Nonterminal("BoolTerm"))
TerminalEdge(tail=64,head=65,terminal=Terminal(")"))
NonterminalEdge(tail=83,head=84,nonterminal=Nonterminal("NumVar"))
NonterminalEdge(tail=66,head=67,nonterminal=Nonterminal("NumVar"))
TerminalEdge(tail=79,head=80,terminal=Terminal(")"))
NonterminalEdge(tail=76,head=77,nonterminal=Nonterminal("BoolVar"))

0 comments on commit 5485c87

Please sign in to comment.