|
Packit |
1422b7 |
# added 2015-07-22 by Rainer Gerhards
|
|
Packit |
1422b7 |
# This file is part of the liblognorm project, released under ASL 2.0
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
. $srcdir/exec.sh
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
test_def $0 "simple alternative syntax"
|
|
Packit |
1422b7 |
add_rule 'version=2'
|
|
Packit |
1422b7 |
add_rule 'rule=:a %{"name":"numbers", "type":"repeat",
|
|
Packit |
1422b7 |
"parser":
|
|
Packit |
1422b7 |
{ "type":"alternative", "parser": [
|
|
Packit |
1422b7 |
[ {"type":"number", "name":"n1"},
|
|
Packit |
1422b7 |
{"type":"literal", "text":":"},
|
|
Packit |
1422b7 |
{"type":"number", "name":"n2"},
|
|
Packit |
1422b7 |
],
|
|
Packit |
1422b7 |
{"type":"hexnumber", "name":"hex"}
|
|
Packit |
1422b7 |
]
|
|
Packit |
1422b7 |
},
|
|
Packit |
1422b7 |
"while":[
|
|
Packit |
1422b7 |
{"type":"literal", "text":", "}
|
|
Packit |
1422b7 |
]
|
|
Packit |
1422b7 |
}% b'
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
execute 'a 1:2, 3:4, 5:6, 7:8 b'
|
|
Packit |
1422b7 |
assert_output_json_eq '{ "numbers": [ { "n2": "2", "n1": "1" }, { "n2": "4", "n1": "3" }, { "n2": "6", "n1": "5" }, { "n2": "8", "n1": "7" } ] }'
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
execute 'a 0x4711 b'
|
|
Packit |
1422b7 |
assert_output_json_eq '{ "numbers": [ { "hex": "0x4711" } ] }'
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
# note: 0x4711, 1:2 does not work because hexnumber expects a SP after
|
|
Packit |
1422b7 |
# the number! Thus we use the reverse. We could add this case once
|
|
Packit |
1422b7 |
# we have added an option for more relaxed matching to hexnumber.
|
|
Packit |
1422b7 |
execute 'a 1:2, 0x4711 b'
|
|
Packit |
1422b7 |
assert_output_json_eq '{ "numbers": [ { "n2": "2", "n1": "1" }, { "hex": "0x4711" } ] }'
|
|
Packit |
1422b7 |
|
|
Packit |
1422b7 |
cleanup_tmp_files
|