I am trying write a parser code for following production rule.
Statement: Variable+ | epsilon
My initial implementation:
'''
Statement: Variables | epsilon
Variables: Variable Variables | Variable (one or more variable)
epsilon: null ('')
'''
*** Variable is already implemented***
@_('Variables')
def Statement(self,p):
return p.Variables
@_('Variable Variables', 'Variable')
def Variables(self,p):
return p.Variable
@_('')
def epsilon(self,p):
pass
@_('epsilon')
def Statement(self,p):
return p
I get following error:
WARNING: Symbol 'epsilon' is unreachable.
WARNING: Symbol 'Statement' is unreachable