diff --git a/CHANGES b/CHANGES index aa9b634..85ab6c7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Version 0.4 +----------- +9/5/2018 Added support for getattr() and related functions on + productions. + Version 0.3 ----------- 4/1/2018 Support for Lexer inheritance added. For example: diff --git a/sly/yacc.py b/sly/yacc.py index 85cd85c..b6a6710 100644 --- a/sly/yacc.py +++ b/sly/yacc.py @@ -144,7 +144,10 @@ class YaccProduction: raise AttributeError('No index attribute found') def __getattr__(self, name): - return self._slice[self._namemap[name]].value + if name in self._namemap: + return self._slice[self._namemap[name]].value + else: + raise AttributeError(f'No symbol {name}') def __setattr__(self, name, value): if name[0:1] == '_' or name not in self._namemap: