with self.assertRaises(ParseError):
self.parser.parse_string(test_string)
+ def test_options(self):
+ test_string = '''
+ define foo { option deprecated; u8 foo; };
+ define foo_reply {u32 context; i32 retval; };
+ '''
+ r = self.parser.parse_string(test_string)
+ self.assertIsNotNone(r)
+ s = self.parser.process(r)
+ self.assertIsNotNone(s)
+
class TestService(unittest.TestCase):
@classmethod
class Option():
- def __init__(self, option, value):
+ def __init__(self, option, value=None):
self.type = 'Option'
self.option = option
self.value = value
p[0] = Array(p[1], p[2], p[4])
def p_option(self, p):
- '''option : OPTION ID '=' assignee ';' '''
- p[0] = Option(p[2], p[4])
+ '''option : OPTION ID '=' assignee ';'
+ | OPTION ID ';' '''
+ if len(p) == 4:
+ p[0] = Option(p[2])
+ else:
+ p[0] = Option(p[2], p[4])
def p_assignee(self, p):
'''assignee : NUM