summaryrefslogtreecommitdiff
path: root/test/accum3.lm
blob: 40508a0dcf0f55859becd01e4a67f2caee676228 (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
35
36
lex args
{   
	literal '-'
	token file /^('-'|0)(^0)*/
}

token word /(^0)+/
token zero /0/ 

lex opts
{
	token single /[qvh]/
	token with_opt /[oi]/
}

def item
	[file zero]
|	['-' single* zero]
|	['-' with_opt zero? word zero]

def args 
	[word zero item*]

accum arg_parser [args] 

ArgParser: arg_parser = cons arg_parser []

ArgV: argv_list ArgV = argv
for A: str in ArgV 
	ArgParser << [A '\0']

Args: args = ArgParser.finish() 

print_xml( Args )