summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorZackery Spytz <zspytz@gmail.com>2019-02-21 02:11:51 -0700
committerZackery Spytz <zspytz@gmail.com>2019-02-21 02:11:51 -0700
commit1c03af9b96c5c3e2eb5afd2f2e93e4381bfa2261 (patch)
treeb3cfb1fff3aeb5fc60f2e863d963b5dcf3959d99 /Source
parent32b963ef1caccf7bc941e16c9a6fc7abe8c8fd8d (diff)
downloadswig-1c03af9b96c5c3e2eb5afd2f2e93e4381bfa2261.tar.gz
Fix some rejections of valid floating-point literals
Some valid floating-point literals were giving "Error: Syntax error in input(1)".
Diffstat (limited to 'Source')
-rw-r--r--Source/Swig/scanner.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/Swig/scanner.c b/Source/Swig/scanner.c
index 964336621..908bc747f 100644
--- a/Source/Swig/scanner.c
+++ b/Source/Swig/scanner.c
@@ -1160,6 +1160,8 @@ static int look(Scanner *s) {
return SWIG_TOKEN_INT;
if (isdigit(c))
state = 84;
+ else if ((c == 'e') || (c == 'E'))
+ state = 82;
else if ((c == 'x') || (c == 'X'))
state = 85;
else if ((c == 'b') || (c == 'B'))
@@ -1181,6 +1183,10 @@ static int look(Scanner *s) {
return SWIG_TOKEN_INT;
if (isdigit(c))
state = 84;
+ else if (c == '.')
+ state = 81;
+ else if ((c == 'e') || (c == 'E'))
+ state = 82;
else if ((c == 'l') || (c == 'L')) {
state = 87;
} else if ((c == 'u') || (c == 'U')) {