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