aboutsummaryrefslogtreecommitdiff
path: root/build2/lexer.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-20 14:14:52 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-20 14:14:52 +0200
commitdf43058115b389f1375690812ad92301288f976f (patch)
treebb4196fef2bfddd8fe778b92e7d2d3ce58e68c73 /build2/lexer.cxx
parent5c5a60a02ba1ddcb6782a938f3c892cda979d8fe (diff)
Implement support for <, >, <=, >= in eval context
Now can write: if ($build.version > 30000)
Diffstat (limited to 'build2/lexer.cxx')
-rw-r--r--build2/lexer.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/build2/lexer.cxx b/build2/lexer.cxx
index 2319ecb..773cd88 100644
--- a/build2/lexer.cxx
+++ b/build2/lexer.cxx
@@ -160,6 +160,19 @@ namespace build2
get ();
return token (c == '=' ? type::equal : type::not_equal, sep, ln, cn);
}
+ break;
+ }
+ case '<':
+ case '>':
+ {
+ bool e (peek () == '=');
+ if (e)
+ get ();
+
+ return token (c == '<'
+ ? e ? type::less_equal : type::less
+ : e ? type::greater_equal : type::greater,
+ sep, ln, cn);
}
}
@@ -271,6 +284,8 @@ namespace build2
switch (c)
{
case ':':
+ case '<':
+ case '>':
{
done = true;
break;