| OLD | NEW |
| 1 part of lisp; | 1 part of petitparser.lisp; |
| 2 | 2 |
| 3 /** | 3 /// LISP grammar. |
| 4 * LISP grammar. | |
| 5 */ | |
| 6 class LispGrammar extends GrammarParser { | 4 class LispGrammar extends GrammarParser { |
| 7 LispGrammar() : super(new LispGrammarDefinition()); | 5 LispGrammar() : super(new LispGrammarDefinition()); |
| 8 } | 6 } |
| 9 | 7 |
| 10 /** | 8 /// LISP grammar definition. |
| 11 * LISP grammar definition. | |
| 12 */ | |
| 13 class LispGrammarDefinition extends GrammarDefinition { | 9 class LispGrammarDefinition extends GrammarDefinition { |
| 14 | 10 |
| 15 start() => ref(atom).star().end(); | 11 start() => ref(atom).star().end(); |
| 16 | 12 |
| 17 atom() => ref(atom_).trim(ref(space)); | 13 atom() => ref(atom_).trim(ref(space)); |
| 18 atom_() => ref(list) | 14 atom_() => ref(list) |
| 19 | ref(number) | 15 | ref(number) |
| 20 | ref(string) | 16 | ref(string) |
| 21 | ref(symbol) | 17 | ref(symbol) |
| 22 | ref(quote) | 18 | ref(quote) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 50 quote() => char('\'') & ref(list); | 46 quote() => char('\'') & ref(list); |
| 51 quasiquote() => char('`') & ref(list); | 47 quasiquote() => char('`') & ref(list); |
| 52 unquote() => char(',') & ref(list); | 48 unquote() => char(',') & ref(list); |
| 53 splice() => char('@') & ref(list); | 49 splice() => char('@') & ref(list); |
| 54 | 50 |
| 55 space() => whitespace() | ref(comment); | 51 space() => whitespace() | ref(comment); |
| 56 comment() => char(';') & Token.newlineParser().neg().star(); | 52 comment() => char(';') & Token.newlineParser().neg().star(); |
| 57 bracket(String brackets, Parser parser) => char(brackets[0]) & parser & char(b
rackets[1]); | 53 bracket(String brackets, Parser parser) => char(brackets[0]) & parser & char(b
rackets[1]); |
| 58 | 54 |
| 59 } | 55 } |
| OLD | NEW |