Exemplo n.º 1
0
def _CreateModule(id_spec, ids):
    """ 
  Create a SYNTHETIC ASDL module to generate code from.
  """
    from asdl import asdl_

    id_sum = asdl_.Sum([asdl_.Constructor(name) for name, _ in ids])

    variants2 = [asdl_.Constructor(name) for name in id_spec.kind_name_list]
    kind_sum = asdl_.Sum(variants2)

    id_ = asdl_.TypeDecl('Id', id_sum)
    kind_ = asdl_.TypeDecl('Kind', kind_sum)

    schema_ast = asdl_.Module('id_kind', [], [id_, kind_])
    return schema_ast
def _CreateSum(sum_name, variant_names):
    """ 
  Similar to frontend/id_kind_gen.py
  Usage of SYNTHETIC ASDL module:

  C++:

  using option_asdl::opt_num
  opt_num::nounset

  Python:
  from _devbuild.gen.option_asdl import opt_num
  opt_num.nounset
  """
    sum_ = asdl_.Sum([asdl_.Constructor(name) for name in variant_names])
    typ = asdl_.TypeDecl(sum_name, sum_)
    return typ