blob: acf54674fa5109e658261f7cb7332cec16b2ce83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
##### LM #####
# Token names.
lex
literal '+', '*'
token number /[0-9]+/
ignore ws / [ \t\n]+ /
end
def F
[number '+']
| [number]
| [F '*' number]
def E
[E '+' F]
| [F]
def start
[E]
parse S: start[ stdin ]
R: start = match S ~ 9 + 9
print_xml( R )
print( '\n' )
##### IN #####
9 + 9
##### EXP #####
<start><E><E><F><number>9</number></F></E><_literal_0001>+</_literal_0001><F><number>9</number></F></E></start>
|