Apparently there is an interaction with the root directives.

On Mon, Mar 27, 2017 at 6:34 PM, Stephane Ducasse <stepharo.s...@gmail.com>
wrote:

> 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
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>

Reply via email to