text: # This file is automatically generated by EBNFParser.
  from Ruikowa.ObjectRegex.Tokenizer import unique_literal_cache_pool, regex_matcher, char_matcher, str_matcher, Tokenizer
  from Ruikowa.ObjectRegex.Node import AstParser, Ref, SeqParser, LiteralValueParser, LiteralNameParser, Undef
  namespace = globals()
  recur_searcher = set()
  token_table = ((unique_literal_cache_pool["keyword"], str_matcher(('efgh', 'abcd'))),
                 (unique_literal_cache_pool["auto_const"], char_matcher(('c', 'b', 'a'))))
  
  class UNameEnum:
  # names
      auto_const = unique_literal_cache_pool['auto_const']
      keyword = unique_literal_cache_pool['keyword']
      S = unique_literal_cache_pool['S']
  # values
      auto_const_c = unique_literal_cache_pool['c']
      keyword_efgh = unique_literal_cache_pool['efgh']
      auto_const_a = unique_literal_cache_pool['a']
      auto_const_b = unique_literal_cache_pool['b']
      keyword_abcd = unique_literal_cache_pool['abcd']
          
  token_func = lambda _: Tokenizer.from_raw_strings(_, token_table, ({}, {}))
  keyword = LiteralNameParser('keyword')
  S = AstParser([SeqParser(['a', 'b', 'c'], at_least=0,at_most=Undef)],
                name="S",
                to_ignore=({}, {}))
  S.compile(namespace, recur_searcher)
  
  # add here
  print (S.possibilities[0][0].name)
  