#include <glib.h>
#include <stdio.h>
+#include <string.h>
#define MBTREE_TYPE MBTree
# we must fisrt define the terminals
# with or without numbers
#
-%term Assign Constant Fetch=3 Four=8 Mul=5 Plus=6
+%term Assign Constant Fetch=3 Four=8 Mul=5 Plus=6 AltFetch=7
#
# optional start nonterminal
addr: con 0
-addr: Plus(con,reg) 0
+addr: Plus(con,reg)
{
int ern = mono_burg_rule (tree->state, MB_NTERM_addr);
printf ("%s\n", mono_burg_rule_string [ern]);
-}
+} cost
+{
+ return 1;
+}
addr: Plus(con,Mul(Four,reg)) 2
{
printf ("%s\n", mono_burg_rule_string [ern]);
}
+reg: AltFetch(addr),
reg: Fetch(addr) 1
{
int ern = mono_burg_rule (tree->state, MB_NTERM_reg);
if (n) { /* not a terminal */
// printf ("XXTE %s %d\n", mono_burg_rule_string [ern], n);
if (mono_burg_func [ern])
- mono_burg_func [ern] (tree);
+ mono_burg_func [ern] (tree, NULL);
else
g_warning ("no code for rule %s\n",
mono_burg_rule_string [ern]);
t = create_tree (MB_TERM_Fetch, l, NULL);
- s = mono_burg_label (t);
+ s = mono_burg_label (t, NULL);
g_assert (s);