Putting it in single quotes should work. E.g. " '[' ". Similarly, you can add a literal single quote by making it part of a character class. E.g. " ['] ".
You're right, I should definitely add something about that to the documentation. Any other weak parts you've noticed while perusing? On Thu, Jan 27, 2011 at 9:25 PM, Noah Lavine <noah.b.lav...@gmail.com> wrote: > Hello again, > > I've run into another issue with the parser that should be addressed > in the documentation (or the code?). > > How do you match a character that is used in the PEG grammar, like > "["? Can you only define such matchers via s-expressions? > > Noah > > On Thu, Jan 27, 2011 at 12:17 AM, Noah Lavine <noah.b.lav...@gmail.com> wrote: >> Hi, >> >>> It flattens until you have a list where each element either: >>> 1. Is an atom. >>> or 2. Is a list whose first element is in the list of keywords. >>> >>> So the car of the argument will change if it's a list that doesn't >>> start with the right keyword. E.g.: >>> (keyword-flatten '(a) '((c (a b)) (a b) (b a))) -> >>> (c (a b) (a b) b a) >> >> I see. >> >>> That's odd. Could you paste in the lambda expression it generates? >> >> Wait, actually, I realized it was my own error. My test function was >> using nonterminals, but I had only done (define grammar-string ....), >> not (define-grammar grammar-string). I think the generated code tried >> to call the nonterminals that should have been there, and threw an >> error when it didn't find them. >> >> The peg matcher is really awesome. I am glad to be able to use it soon. >> >> Noah >> >