summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/pipeline/expression/lexeme
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-23 10:13:43 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-23 10:13:43 +0100
commit8c7374cafcfe77f880d45f32ff11b38d257f5373 (patch)
treee086920a91b6b8e65f460b7450e664062bfe4644 /lib/gitlab/ci/pipeline/expression/lexeme
parent8517627410499486e2bb09d8a55ba6f0088d7503 (diff)
downloadgitlab-ce-8c7374cafcfe77f880d45f32ff11b38d257f5373.tar.gz
Add operator / value types in pipeline expressions
Diffstat (limited to 'lib/gitlab/ci/pipeline/expression/lexeme')
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/equals.rb3
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/null.rb3
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/operator.rb15
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/string.rb3
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/value.rb15
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexeme/variable.rb3
6 files changed, 34 insertions, 8 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/equals.rb b/lib/gitlab/ci/pipeline/expression/lexeme/equals.rb
index 0cb21131d69..b499d41a509 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/equals.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/equals.rb
@@ -3,9 +3,8 @@ module Gitlab
module Pipeline
module Expression
module Lexeme
- class Equals < Lexeme::Base
+ class Equals < Lexeme::Operator
PATTERN = /==/.freeze
- TYPE = :operator
def initialize(left, right)
@left = left
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/null.rb b/lib/gitlab/ci/pipeline/expression/lexeme/null.rb
index 21286151d79..5bf06a9eee2 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/null.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/null.rb
@@ -3,9 +3,8 @@ module Gitlab
module Pipeline
module Expression
module Lexeme
- class Null < Lexeme::Base
+ class Null < Lexeme::Value
PATTERN = /null/.freeze
- TYPE = :value
def initialize(value = nil)
@value = value
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/operator.rb b/lib/gitlab/ci/pipeline/expression/lexeme/operator.rb
new file mode 100644
index 00000000000..f640d0b5855
--- /dev/null
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/operator.rb
@@ -0,0 +1,15 @@
+module Gitlab
+ module Ci
+ module Pipeline
+ module Expression
+ module Lexeme
+ class Operator < Lexeme::Base
+ def self.type
+ :operator
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/string.rb b/lib/gitlab/ci/pipeline/expression/lexeme/string.rb
index 470a5a15cc1..6f77d443c3c 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/string.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/string.rb
@@ -3,9 +3,8 @@ module Gitlab
module Pipeline
module Expression
module Lexeme
- class String < Lexeme::Base
+ class String < Lexeme::Value
PATTERN = /"(?<string>.+?)"/.freeze
- TYPE = :value
def initialize(value)
@value = value
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/value.rb b/lib/gitlab/ci/pipeline/expression/lexeme/value.rb
new file mode 100644
index 00000000000..f2611d65faf
--- /dev/null
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/value.rb
@@ -0,0 +1,15 @@
+module Gitlab
+ module Ci
+ module Pipeline
+ module Expression
+ module Lexeme
+ class Value < Lexeme::Base
+ def self.type
+ :value
+ end
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/ci/pipeline/expression/lexeme/variable.rb b/lib/gitlab/ci/pipeline/expression/lexeme/variable.rb
index 5fb5dd4bbbe..01eea6b19a6 100644
--- a/lib/gitlab/ci/pipeline/expression/lexeme/variable.rb
+++ b/lib/gitlab/ci/pipeline/expression/lexeme/variable.rb
@@ -3,9 +3,8 @@ module Gitlab
module Pipeline
module Expression
module Lexeme
- class Variable < Lexeme::Base
+ class Variable < Lexeme::Value
PATTERN = /\$(?<name>\w+)/.freeze
- TYPE = :value
def initialize(name)
@name = name