Tokens
event = '{' clojurecode '}'; osq = '['; csq = ']'; osqneg = '[^'; bar = '|'; plus = '+'; star = '*'; qmark = '?'; opar = '('; cpar = ')'; dot = '.'; whitespace = blank;
Ignored Tokens
whitespace;
Productions
union {-> exp} = {concat} concat {-> concat.exp} | {union} union bar concat {-> New exp.union(union.exp, concat.exp)}; concat {-> exp} = {closure} closure {-> closure.exp} | {concat} concat closure {-> New exp.concat(concat.exp, closure.exp)}; closure {-> exp} = {atom} atom {-> atom.exp} | {qmark} atom qmark {-> New exp.qmark(atom.exp)} | {star} atom star {-> New exp.star(atom.exp)} | {plus} atom plus {-> New exp.plus(atom.exp)}; atom {-> exp} = {dot} dot {-> New exp.dot()} | {event} event {-> New exp.event(event)} | {paren} opar union cpar {-> New exp.paren(union.exp)} | {set} osq event* csq ???????????? | {negset} osqneg event* csq ????????????
Abstract Syntax Tree
exp = {union} [left]:exp [right]:exp | {concat} [left]:exp [right]:exp | {qmark} exp | {star} exp | {plus} exp | {paren} exp | {event} event | {set} event* ???????????? | {negset} event* ???????????? | {dot};
--
-- You received this message because you are subscribed to the SableCC group. To post to this group, send email to sab...@googlegroups.com. To unsubscribe from this group, send email to sablecc+u...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/sablecc?hl=en
atom {-> exp} = ... ... | {set} osq event* csq {->new exp.set([event]) } | {negset} osqneg event* csq {->new exp.negset([event]) }The CST->AST syntax to create a list uses brackets: [elem1 elem2 list1] would create a list containing elem1, elem2, and the elements of list1.
Etienne Gagnon, Ph.D. http://sablecc.orgLe 12-11-14 14:37, Oskar a écrit :
Hi!
I have the following grammar:
...