Remove left-recursion from FIDL grammar.

How GrammarKit (our parser builder) handles left recursion
is somewhat confusing.  There do seem to be ways to make
it work the way we want, but it is probably more readable
just to remove it entirely.  This causes more divergence from
the official grammar, but that seems harmless.

FIDL-302

Change-Id: I25ae172d88c971d3028aa78e8fcd3e17fc5b02d3
diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml
index f10459a..a666237 100644
--- a/resources/META-INF/plugin.xml
+++ b/resources/META-INF/plugin.xml
@@ -18,7 +18,12 @@
 
   <change-notes><![CDATA[
       <ul>
-        <li><b>0.3</b> Add support for context-sensitive keywords</li>
+        <li><b>0.3</b>
+           <ul>
+             <li>Add support for context-sensitive keywords</li>
+             <li>Bug fix for ambiguous grammar</li>
+           </ul>
+        </li>
         <li><b>0.2</b> Add table support</li>
         <li><b>0.1</b> Initial support for parsing and syntax highlighting</li>
       </ul>
diff --git a/src/fuchsia/developer/plugin/fidl/Fidl.bnf b/src/fuchsia/developer/plugin/fidl/Fidl.bnf
index 5cfbb5e..dccab63 100644
--- a/src/fuchsia/developer/plugin/fidl/Fidl.bnf
+++ b/src/fuchsia/developer/plugin/fidl/Fidl.bnf
@@ -59,7 +59,7 @@
 
 parameter-list ::= OPAREN parameters? CPAREN
 
-parameters ::= parameters COMMA parameter | parameter
+parameters ::= parameter ( COMMA parameter )*
 
 parameter ::= type identifier-token
 
@@ -85,7 +85,7 @@
 
 bracket-attribute-list ::= OBRACKET attributes CBRACKET
 
-attributes ::= attribute COMMA attributes | attribute
+attributes ::= attribute ( COMMA attribute )*
 
 attribute ::= identifier-token ( EQUALS STRING_LITERAL )?