summaryrefslogtreecommitdiffstats
path: root/Parser
diff options
context:
space:
mode:
Diffstat (limited to 'Parser')
-rw-r--r--Parser/tokenizer.c39
1 files changed, 23 insertions, 16 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 86106b3..62a3da0 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -435,30 +435,37 @@ tok_get(tok, p_start, p_end)
c = tok_nextc(tok);
}
}
+ if (c == 'l' || c == 'L')
+ c = tok_nextc(tok);
}
else {
/* Decimal */
do {
c = tok_nextc(tok);
} while (isdigit(c));
- /* Accept floating point numbers.
- XXX This accepts incomplete things like 12e or 1e+;
- worry about that at run-time.
- XXX Doesn't accept numbers starting with a dot */
- if (c == '.') {
- fraction:
- /* Fraction */
- do {
- c = tok_nextc(tok);
- } while (isdigit(c));
- }
- if (c == 'e' || c == 'E') {
- /* Exponent part */
+ if (c == 'l' || c == 'L')
c = tok_nextc(tok);
- if (c == '+' || c == '-')
- c = tok_nextc(tok);
- while (isdigit(c)) {
+ else {
+ /* Accept floating point numbers.
+ XXX This accepts incomplete things like
+ XXX 12e or 1e+; worry run-time.
+ XXX Doesn't accept numbers
+ XXX starting with a dot */
+ if (c == '.') {
+ fraction:
+ /* Fraction */
+ do {
+ c = tok_nextc(tok);
+ } while (isdigit(c));
+ }
+ if (c == 'e' || c == 'E') {
+ /* Exponent part */
c = tok_nextc(tok);
+ if (c == '+' || c == '-')
+ c = tok_nextc(tok);
+ while (isdigit(c)) {
+ c = tok_nextc(tok);
+ }
}
}
}