aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-03-31 20:53:11 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-03-31 20:53:11 +0200
commit0fc165454187328dad475f472c31d2a98524fd4f (patch)
tree51cc87f7fb786f3e4a6a6cb79567778d759edf7b
parentcb726fac520ed6336610d90af63c61044c51dfee (diff)
Accept .1
-rw-r--r--lexer.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/lexer.go b/lexer.go
index a9938c5..329d97e 100644
--- a/lexer.go
+++ b/lexer.go
@@ -94,8 +94,12 @@ func (y *yyLex) run() {
y.ignore()
case QUOTE:
y.lexQuoted()
- case DIGIT, NEG:
- y.lexNumber()
+ case DIGIT, NEG, DOT:
+ if t == DOT && Tokens[y.peek()] != DIGIT {
+ y.emit(t)
+ } else {
+ y.lexNumber()
+ }
case CHAR:
y.lexString()
default:
@@ -140,6 +144,7 @@ func (y *yyLex) lexString() {
func (y *yyLex) lexNumber() {
t := INTEGER
+ y.backup()
y.acceptToken(NEG)
y.acceptDigits()
if y.acceptToken(DOT) {