goccmack / gocc

Parser / Scanner Generator
Other
622 stars 48 forks source link

Non-deterministic debug output order #26

Closed mewmew closed 8 years ago

mewmew commented 8 years ago

Diff between https://github.com/mewspring/poc/commit/4263452a5fbbe90ea72537a5c984fdfdd0aedd2d and https://github.com/mewspring/poc/commit/58ab6a47866634acd8875b08fe8bbf2b49e3dd81 running Gocc revision goccmack/gocc@ea52c71 with the -debug_parser option.

No changes were made to the grammar between subsequent runs. The non-determinism is likely due to the fact that map iterations are random by design in Go.

u@x1 ~/D/g/s/g/m/p/empty> git diff 4263452a5fbbe90ea72537a5c984fdfdd0aedd2d 58ab6a47866634acd8875b08fe8bbf2b49e3dd81
diff --git a/empty/LR1_sets.txt b/empty/LR1_sets.txt
index f0f556d..3609cde 100644
--- a/empty/LR1_sets.txt
+++ b/empty/LR1_sets.txt
@@ -1,15 +1,15 @@
 S0{
        S' : •Start «$»
        Start : •Foo Bar «$»
-       Foo : empty• «bar»
        Foo : empty• «$»
-       Foo : •foo «$»
+       Foo : empty• «bar»
        Foo : •foo «bar»
+       Foo : •foo «$»
 }
 Transitions:
-       foo -> 3
        Start -> 1
        Foo -> 2
+       foo -> 3

 S1{
@@ -29,8 +29,8 @@ Transitions:

 S3{
-       Foo : foo• «$»
        Foo : foo• «bar»
+       Foo : foo• «$»
 }
 Transitions:

diff --git a/empty/first.txt b/empty/first.txt
index dd17d05..c9a9ed6 100644
--- a/empty/first.txt
+++ b/empty/first.txt
@@ -3,16 +3,16 @@ Foo: {
        foo
 }
 Bar: {
-       empty
        bar
+       empty
 }
 Start: {
+       bar
        empty
        foo
-       bar
 }
 S': {
+       empty
        foo
        bar
-       empty
 }
awalterschulze commented 8 years ago

I just think this wasn't a high priority thing, since you probably don't commit the debug output. But if you want to fix you are welcome.