diff options
Diffstat (limited to 'tools/parse.nom')
| -rwxr-xr-x | tools/parse.nom | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/parse.nom b/tools/parse.nom new file mode 100755 index 0000000..68be3a8 --- /dev/null +++ b/tools/parse.nom @@ -0,0 +1,27 @@ +#!/usr/bin/env nomsu -V2.4.4.3 +use "core" +use "lib/os.nom" +action [print tree %t at indent %indent]: + if %t.type is: + "Action": + say "\(%indent)Action (\(%t.stub)):" + for %arg in %t: + if (%arg is syntax tree): + print tree %arg at indent "\%indent " + "Number": + say "\(%indent)\(%t.1)" + "Var": + say "\(%indent)%\(%t.1)" + else: + say "\(%indent)\(%t.type):" + for %arg in %t: + if: + (%arg is syntax tree): + print tree %arg at indent "\%indent " + else: + say "\%indent \(quote %arg)" + +for %path in (=lua "arg"): + for file %filename in %path: + unless (%filename matches "%.nom$"): do next %filename + print tree (parse (read file %filename) from %filename) at indent "" |
