simpleType method

Parser<TypeNode> simpleType()

Implementation

Parser<TypeNode> simpleType() => [
  seq3(
    ref1(token, '('),
    ref0(identifier)
        .plusSeparated(ref1(token, ','))
        .map((sep) => sep.elements),
    ref1(token, ')'),
  ).map3((_, names, _) => EnumeratedTypeNode(names)),
  seq3(
    ref0(constant),
    ref1(token, '..'),
    ref0(constant),
  ).map3((start, _, end) => SubrangeTypeNode(start: start, end: end)),
  ref0(identifier).map(SimpleTypeNode.new),
].toChoiceParser();