numericLiteral method

Parser<Expression> numericLiteral()

Implementation

Parser<Expression> numericLiteral() {
  // Matches: digits optionally followed by .digits
  final number = (digit().plus() & (char('.') & digit().plus()).optional())
      .flatten();

  return number.mapWithPosition((v, start, end) {
    final value = v.contains('.') ? double.parse(v) : int.parse(v);
    return Literal(value, v)..start = start..end = end;
  });
}