summaryrefslogtreecommitdiff
path: root/source4/build
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build')
-rw-r--r--source4/build/pidl/Makefile2
-rw-r--r--source4/build/pidl/idl.yp15
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]]); }
;