Go to Google Groups Home    Qilang
segment matching variables in Qi-YACC (for Snorgers ;))

Mark Tarver <dr.mtar...@ukonline.co.uk>

Here is a sugaring on top of Qi that enables you to have segment
matching variables in Qi-YACC.  <<...>> is a stuff matcher.

(defcc <grab-numbers>
       <<X>> <numbers> <<Y>> := <numbers>;)

(defcc <numbers>
       <number> <numbers>;
       <number>;)

(defcc <number>
        -*- := (if (number? -*-) [-*-] #\Escape);)

(defcc <grab-my-name>
   <<X>> :name <<Y>> := <<Y>>;)

Examples:

(compile <grab-my-name> [ghhghg 7 8 :name Mark Tarver])
[Mark Tarver]

(compile <grab-numbers> [just some numbers 1 2 3/4 tum te tum])
[1 2 3/4]

The code is 85 lines.

Mark