blob: 58d9e184c2cafeceb8ef3e6220b047a60655bcd0 [file] [log] [blame]
/*
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
* for details. All rights reserved. Use of this source code is governed by a
* BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion A numeric literal is either a decimal or hexadecimal integer of arbitrary size,
* or a decimal double.
* NUMBER: DIGIT+ ('.' DIGIT+)? EXPONENT? | '.' DIGIT+ EXPONENT?
* EXPONENT: ('e' | 'E') ('+' | '-')? DIGIT+
* HEX NUMBER: '0x' HEX DIGIT+ | '0X' HEX DIGIT+ ;
* HEX DIGIT: 'a'..'f' | 'A'..'F' | DIGIT ;
* @description Checks that all decimal and hexadecimal digits are parsed correctly.
* @author iefremov
* @reviewer rodionov
*/
import "../../Utils/expect.dart";
main() {
var v = 1234567890.0987654321e1234567890;
Expect.equals(1234567890.0987654321e1234567890, v);
Expect.equals(double.INFINITY, v);
v = 01234567899876543210;
Expect.equals(01234567899876543210, v);
Expect.equals("1234567899876543210", v.toString());
v = 01234567899876543210.01234567899876543210;
Expect.equals(1.23456789987654323E18, v);
v = 0x1234567890abcdefABCDEF;
Expect.equals(22007822917795467892608495, v);
Expect.equals("22007822917795467892608495", v.toString());
}