Now I tried to hook modifier logic to test and I cannot have two modifiers. I thought that
modifiers : modifier 'modifier' | modifiers modifier 'modifier' ; allows one to have 'public static' but apparently not so I'm totally confused. On Mon, Mar 27, 2017 at 6:30 PM, Stephane Ducasse <stepharo.s...@gmail.com> wrote: > Hi john > > I'm learning smacc as a challenge :) I read a review the tutorial that we > extracted form your doc. > > I have the following expression > > FunctionTypeName = 'function' TypeNameList ( 'internal' | 'external' | > 'constant' | 'payable' )* ( 'returns' TypeNameList )? > > and I started to handle the 'internal'.... > > Now my grammar does not succeed to parse > (self parser parseFunctionTypeNameOptions: 'internal payable') > > Attempt one: did not work > =================== > FunctionTypeNameOptions > : {{}} > | FunctionTypeNameOptions "internal" 'option' {{}} > | FunctionTypeNameOptions "external" 'option' {{}} > | FunctionTypeNameOptions "constant" 'option' {{}} > | FunctionTypeNameOptions "payable" 'option' {{}} > > > Attempt two: did not work > =================== > FunctionTypeNameOptions > : > | FunctTypeNameOptions > ; > FunctTypeNameOptions > : FunctTypeNameOptions "internal" 'option' {{}} > | FunctTypeNameOptions "external" 'option' {{}} > | FunctTypeNameOptions "constant" 'option' {{}} > | FunctTypeNameOptions "payable" 'option' {{}} > ; > > Attempt three: did not work > ===================== > > FunctionTypeNameOptions > : > | FunctTypeNameOptions > ; > > FunctTypeNameOptions > : FunctTypeNameOption 'option' > | FunctTypeNameOptions FunctTypeNameOption 'option' > ; > FunctTypeNameOption > : "internal" 'option' {{}} > | "external" 'option' {{}} > | "constant" 'option' {{}} > | "payable" 'option' {{}} > ; > > > > I studied the JavaParser and I do not get why my version does not work > > modifiers_opt > : > | modifiers > ; > modifiers > : modifier 'modifier' > | modifiers modifier 'modifier' > ; > modifier > : "public" 'token' {{Modifier}} > | "protected" 'token' {{Modifier}} > | "private" 'token' {{Modifier}} > | "static" 'token' {{Modifier}} > ; > > > Thanks in advance. I could have try to do it in petitParser but I want to > have a real experience with Smacc. > > Stef > > > > > > > > > >