lib/puppetdb/grammar.y in ruby-puppetdb-1.3.3 vs lib/puppetdb/grammar.y in ruby-puppetdb-1.4.0
- old
+ new
@@ -14,11 +14,12 @@
left AND
left OR
preclow
rule
- query: exp
+ query:
+ |exp
exp: LPAREN exp RPAREN { result = val[1] }
| NOT exp { result = ASTNode.new :booleanop, :not, [val[1]] }
| exp AND exp { result = ASTNode.new :booleanop, :and, [val[0], val[2]] }
| exp OR exp { result = ASTNode.new :booleanop, :or, [val[0], val[2]] }
@@ -44,11 +45,12 @@
| restype resparams { result = [val[0], val[1]] }
| restype restitle resparams { result = val[0].value == "Class" ? [val[0], val[1].capitalize!, val[2]] : [val[0], val[1], val[2]] }
resexported: EXPORTED
restype: STRING { result = ASTNode.new(:resourcetype, val[0]).capitalize! }
- restitle: LBRACK STRING RBRACK { result = ASTNode.new :resourcetitle, val[1] }
+ restitle: LBRACK STRING RBRACK { result = ASTNode.new :resourcetitle, '=', [ASTNode.new(:string, val[1])] }
+ restitle: LBRACK MATCH STRING RBRACK { result = ASTNode.new :resourcetitle, '~', [ASTNode.new(:string, val[2])] }
resparams: LBRACE exp RBRACE { result = val[1] }
string: STRING { result = ASTNode.new :string, val[0] }
number: NUMBER { result = ASTNode.new :number, val[0] }
boolean: BOOLEAN { result = ASTNode.new :boolean, val[0] }
@@ -56,6 +58,5 @@
end
---- header ----
require 'puppetdb'
require 'puppetdb/lexer'
require 'puppetdb/astnode'
-