factor method

Parser factor()

Implementation

Parser factor() => [
  seq3(ref1(token, '('), ref0(expression), ref1(token, ')')),
  seq2(ref1(token, 'not'), ref0(factor)),
  seq3(
    ref1(token, '['),
    seq2(
      ref0(expression),
      seq2(ref1(token, '..'), ref0(expression)).optional(),
    ).starSeparated(ref1(token, ',')),
    ref1(token, ']'),
  ),
  seq2(
    ref0(identifier),
    seq3(
      ref1(token, '('),
      ref0(expression).plusSeparated(ref1(token, ',')),
      ref1(token, ')'),
    ).optional(),
  ),
  ref0(unsignedConstant),
  ref0(variable),
].toChoiceParser();