blob: 551e6f98d464e26a1e738ba4afc23e97553cd914 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
parser Lisp:
ignore: r'\s+'
token NUM: r'[0-9]+'
token ID: r'[-+*/!@$%^&=.a-zA-Z0-9_]+'
token STR: r'"([^\\"]+|\\.)*"'
rule expr: ID {{ return ('id',ID) }}
| STR {{ return ('str',eval(STR)) }}
| NUM {{ return ('num',int(NUM)) }}
| r"\("
{{ e = [] }} # initialize the list
( expr {{ e.append(expr) }} ) * # put each expr into the list
r"\)" {{ return e }} # return the list
|