Example #1
0
 def atomic_parser(self, s, i):
     # note: no checking for multiple matches...
     for r in self._parse_cache.keys():
         (m_group, new_i) = parsing.consume_pattern(s, i, r)
         if m_group is None:
             continue
         return (self._parse_cache[r], new_i)
     raise TypeParseError("Unknown atomic type", s, i)
Example #2
0
 def parse(cls, s, i, parse_control_fun):
     (m_group, new_i) = parsing.consume_pattern(s, i, vartype_regex)
     if m_group is None:
         return (None, i)
     else:
         return (VariableType(m_group), new_i)