aboutsummaryrefslogtreecommitdiff
path: root/parts/grammar.h
diff options
context:
space:
mode:
Diffstat (limited to 'parts/grammar.h')
-rw-r--r--parts/grammar.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/parts/grammar.h b/parts/grammar.h
new file mode 100644
index 0000000..328f88e
--- /dev/null
+++ b/parts/grammar.h
@@ -0,0 +1,22 @@
+#ifndef GRAMMAR_H
+#define GRAMMAR_H
+
+extern struct production {
+ symbol LHS;
+ symbol *RHS;
+ size_t nRHS;
+} grammar[];
+
+extern const size_t total_productions;
+
+void grammar_print()
+{
+ for(size_t i = 0; i < total_productions; i++) {
+ printf("%d --> ", grammar[i].LHS);
+ for(size_t j = 0; j < grammar[i].nRHS; j++)
+ printf("%d ", grammar[i].RHS[j]);
+ printf("\n");
+ }
+}
+
+#endif