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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
# $Id$
#
# Rules for verious lists.
# This file is just an example, you cannot compile this file.
class ExampleOnly
rule
# a list, which minimum number of items is 0
list0 :
{
result = []
}
| list0 item
{
result.push val[1]
}
# a list, which minimum number of items is 1
list1 : item
{
result = val
}
| list1 item
{
result.push val[1]
}
# a list, separated by comma
clist : item
{
result = val
}
| clist ',' item
{
result.push val[2]
}
# a hash. see also "hash.y".
hash : '{' hash_contents '}'
{
result = val[1]
}
| '{' '}'
{
result = {}
}
hash_contents
: item "=>" item
{
result = { val[0] => val[2] }
}
| hash_contents ',' item "=>" item
{
result[val[2]] = val[4]
}
|