diff options
Diffstat (limited to 'source4/build')
-rw-r--r-- | source4/build/pidl/Makefile | 2 | ||||
-rw-r--r-- | source4/build/pidl/idl.yp | 15 |
2 files changed, 10 insertions, 7 deletions
diff --git a/source4/build/pidl/Makefile b/source4/build/pidl/Makefile index 76229ac925..e2cc7be3eb 100644 --- a/source4/build/pidl/Makefile +++ b/source4/build/pidl/Makefile @@ -1,5 +1,5 @@ idl.pm: idl.yp - yapp idl.yp + yapp -s idl.yp clean: rm -f idl.pm diff --git a/source4/build/pidl/idl.yp b/source4/build/pidl/idl.yp index 13f9b05df4..b38104fa02 100644 --- a/source4/build/pidl/idl.yp +++ b/source4/build/pidl/idl.yp @@ -5,6 +5,12 @@ +# the precedence actually doesn't matter at all for this grammer, but +# by providing a precedence we reduce the number of conflicts +# enormously +%left '-' '+' '&' '|' '*' '>' '.' '/' '(' ')' '[' ',' ';' + + ################ # grammer %% @@ -166,28 +172,25 @@ pointers: element_list1: #empty - | base_element ';' { [ $_[1] ] } | element_list1 base_element ';' { push(@{$_[1]}, $_[2]); $_[1] } ; element_list2: #empty - | 'void' - | base_element { [ $_[1] ] } + | 'void' + | base_element { [ $_[1] ] } | element_list2 ',' base_element { push(@{$_[1]}, $_[3]); $_[1] } ; array_len: #empty | '[' ']' { "*" } - | '[' '*' ']' { "*" } | '[' anytext ']' { "$_[2]" } ; property_list: - #empty - | '[' properties ']' { $_[2] } + #empty | property_list '[' properties ']' { util::FlattenArray([$_[1],$_[3]]); } ; |