()
| 913 | |
| 914 | #[test] |
| 915 | fn test_integer_literals() { |
| 916 | do_ok_test( |
| 917 | "&b10 &B_10 &D10 &d_10 &o_10 &O_10 &X10 &x_10 &xabcdef &x0ABCDEF0 &x7a1", |
| 918 | &[ |
| 919 | ts(Token::Integer(2), 1, 1, 4), |
| 920 | ts(Token::Integer(2), 1, 6, 5), |
| 921 | ts(Token::Integer(10), 1, 12, 4), |
| 922 | ts(Token::Integer(10), 1, 17, 5), |
| 923 | ts(Token::Integer(8), 1, 23, 5), |
| 924 | ts(Token::Integer(8), 1, 29, 5), |
| 925 | ts(Token::Integer(16), 1, 35, 4), |
| 926 | ts(Token::Integer(16), 1, 40, 5), |
| 927 | ts(Token::Integer(11259375), 1, 46, 8), |
| 928 | ts(Token::Integer(180150000), 1, 55, 10), |
| 929 | ts(Token::Integer(1953), 1, 66, 5), |
| 930 | ts(Token::Eof, 1, 71, 0), |
| 931 | ], |
| 932 | ); |
| 933 | |
| 934 | do_ok_test( |
| 935 | "&b11111111111111111111111111111111 &xf0000000 &xffffffff", |
| 936 | &[ |
| 937 | ts(Token::Integer(-1), 1, 1, 34), |
| 938 | ts(Token::Integer(-268435456), 1, 36, 10), |
| 939 | ts(Token::Integer(-1), 1, 47, 10), |
| 940 | ts(Token::Eof, 1, 57, 0), |
| 941 | ], |
| 942 | ); |
| 943 | |
| 944 | do_ok_test( |
| 945 | "& &_ &__ &i10 &i_10 &d &d10.1 &b2 &da &o8 &xg", |
| 946 | &[ |
| 947 | ts(Token::Bad("Missing base in integer literal".to_owned()), 1, 1, 1), |
| 948 | ts(Token::Bad("Unknown base _ in integer literal".to_owned()), 1, 3, 1), |
| 949 | ts(Token::Bad("Unknown base _ in integer literal".to_owned()), 1, 6, 2), |
| 950 | ts(Token::Bad("Unknown base i in integer literal".to_owned()), 1, 10, 3), |
| 951 | ts(Token::Bad("Unknown base i in integer literal".to_owned()), 1, 15, 4), |
| 952 | ts(Token::Bad("No digits in integer literal".to_owned()), 1, 21, 1), |
| 953 | ts(Token::Bad("Numbers in base syntax must be integers".to_owned()), 1, 24, 2), |
| 954 | ts(Token::Bad("Bad integer 2: invalid digit found in string".to_owned()), 1, 31, 1), |
| 955 | ts(Token::Bad("Bad integer a: invalid digit found in string".to_owned()), 1, 35, 1), |
| 956 | ts(Token::Bad("Bad integer 8: invalid digit found in string".to_owned()), 1, 39, 1), |
| 957 | ts(Token::Bad("Unexpected character in numeric literal: g".to_owned()), 1, 43, 1), |
| 958 | ts(Token::Eof, 1, 46, 0), |
| 959 | ], |
| 960 | ); |
| 961 | |
| 962 | do_ok_test( |
| 963 | ">&< >&_< >&__< >&i10< >&i_10< >&d< >&d10.1<", |
| 964 | &[ |
| 965 | ts(Token::Greater, 1, 1, 1), |
| 966 | ts(Token::Bad("Missing base in integer literal".to_owned()), 1, 2, 1), |
| 967 | ts(Token::Less, 1, 3, 1), |
| 968 | // - |
| 969 | ts(Token::Greater, 1, 5, 1), |
| 970 | ts(Token::Bad("Unknown base _ in integer literal".to_owned()), 1, 6, 1), |
| 971 | ts(Token::Less, 1, 8, 1), |
| 972 | // - |
nothing calls this directly
no test coverage detected