blob: 8c6dfc36bd9d0747299c20cee59a3b626b444743 (
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
30
31
32
33
34
|
##### LM #####
# Token names.
lex
token number /[0-9]+/
token id /[a-z]+/
token string /'"' [^"]* '"'/
ignore ws / [ \t\n]+ /
end
def prefix [id]
def choice1
[number number]
| [number]
def choice2
[string id]
| [number number]
| [id number]
| [number]
def start
[prefix choice1 choice2 string id id]
{
print_xml( match lhs "id 77 88 \"hello\" dude dude\n" )
}
parse start[stdin]
print( '\n' )
##### IN #####
id 77 88 "hello" dude dude
##### EXP #####
<start><prefix><id>id</id></prefix><choice1><number>77</number></choice1><choice2><number>88</number></choice2><string>"hello"</string><id>dude</id><id>dude</id></start>
|