%{ #include %} %code { if(foo) { } } %% exp: NUM { $$ = f($3, $4); @$.first_column = @1.first_column; $result = $left + $1; } %% ---------------------------------------------------- [ ["bison", [ ["c", [ ["delimiter", "%{"], ["macro", ["#", ["directive", "include"], ["string", ""]]], ["delimiter", "%}"] ]], ["keyword", "%code"], ["c", [ ["delimiter", "{"], ["keyword", "if"], ["punctuation", "("], "foo", ["punctuation", ")"], ["punctuation", "{"], ["punctuation", "}"], ["delimiter", "}"] ]], ["punctuation", "%%"], ["property", "exp"], ["punctuation", ":"], "\r\n\tNUM ", ["c", [ ["delimiter", "{"], ["bison-variable", ["$$"]], ["operator", "="], ["function", "f"], ["punctuation", "("], ["bison-variable", ["$3"]], ["punctuation", ","], ["bison-variable", ["$4"]], ["punctuation", ")"], ["punctuation", ";"], ["bison-variable", ["@$"]], ["punctuation", "."], "first_column ", ["operator", "="], ["bison-variable", ["@1"]], ["punctuation", "."], "first_column", ["punctuation", ";"], ["bison-variable", ["$result"]], ["operator", "="], ["bison-variable", ["$left"]], ["operator", "+"], ["bison-variable", ["$", ["punctuation", "<"], "itype", ["punctuation", ">"], "1"]], ["punctuation", ";"], ["delimiter", "}"] ]], ["punctuation", "%%"] ]] ] ---------------------------------------------------- Checks for C inside Bison, along with special Bison variables.