unaryExpression method

Parser<Expression> unaryExpression()

Implementation

Parser<Expression> unaryExpression() {
  final ops = ['-', '+', '!', '~'];
  final List<Parser<String>> parsers = ops.map((s) => string(s)).toList();

  final Parser<String> op = ChoiceParser<String>(parsers).trim();

  return (op & token).mapWithPosition((values, start, end) {
    final operator = values[0] as String;
    final expr = values[1] as Expression;
    return UnaryExpression(operator, expr)
      ..start = start
      ..end = end;
  });
}