From c13ac8a36fc80bce5acb1132559e3c3d9d8df7f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 14 Jan 2014 20:57:07 +0100 Subject: [PATCH] fix: lexer enhancement to support asterix and dash in metric segment --- package.json | 3 ++- src/app/services/graphite/lexer.js | 2 ++ src/test/specs/lexer-specs.js | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c73a8a13542..f2c7ccbff77 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,8 @@ "karma-phantomjs-launcher": "~0.1.1", "karma": "~0.10.9", "grunt-karma": "~0.6.2", - "karma-mocha": "~0.1.1" + "karma-mocha": "~0.1.1", + "karma-expect": "~1.0.0" }, "license": "Apache License" } diff --git a/src/app/services/graphite/lexer.js b/src/app/services/graphite/lexer.js index 00fd996859d..ac26463e0bb 100644 --- a/src/app/services/graphite/lexer.js +++ b/src/app/services/graphite/lexer.js @@ -119,6 +119,8 @@ define([ i === 36 || // $ i >= 65 && i <= 90 || // A-Z i === 95 || // _ + i === 45 || // - + i === 42 || // * i >= 97 && i <= 122; // a-z } diff --git a/src/test/specs/lexer-specs.js b/src/test/specs/lexer-specs.js index 06bd63d35da..7fc62438893 100644 --- a/src/test/specs/lexer-specs.js +++ b/src/test/specs/lexer-specs.js @@ -14,6 +14,14 @@ define([ expect(tokens[4].pos).to.be(13); }); + it('should tokenize metric expression with dash', function() { + var lexer = new Lexer('metric.test.se1-server-*.asd.count'); + var tokens = lexer.tokenize(); + expect(tokens[4].type).to.be('identifier'); + expect(tokens[4].value).to.be('se1-server-*'); + }); + + it('should tokenize functions and args', function() { var lexer = new Lexer("sum(metric.test, 12, 'test')"); var tokens = lexer.tokenize();