Class: Norikra::Query::ASTStreamPatternNode
- Inherits:
-
ASTStreamNode
- Object
- ASTNode
- ASTStreamNode
- Norikra::Query::ASTStreamPatternNode
- Defined in:
- lib/norikra/query/ast.rb
Instance Attribute Summary
Attributes inherited from ASTNode
Instance Method Summary collapse
- #aliases ⇒ Object
- #fields(default_target = nil, known_targets_aliases = []) ⇒ Object
-
#targets ⇒ Object
MEMO: Pattern itself can have alias name, but it makes no sense.
Methods inherited from ASTStreamNode
Methods inherited from ASTNode
#chain, #child, #find, #has_a?, #initialize, #listup, #nodetype?, #to_a
Constructor Details
This class inherits a constructor from Norikra::Query::ASTNode
Instance Method Details
#aliases ⇒ Object
1488 1489 1490 |
# File 'lib/norikra/query/ast.rb', line 1488 def aliases self.listup(:pattern).map{|p| [ p.alias, p.target ] } end |
#fields(default_target = nil, known_targets_aliases = []) ⇒ Object
1492 1493 1494 |
# File 'lib/norikra/query/ast.rb', line 1492 def fields(default_target=nil, known_targets_aliases=[]) self.listup(:pattern).map{|p| p.fields(default_target, known_targets_aliases) }.reduce(&:+) || [] end |
#targets ⇒ Object
MEMO: Pattern itself can have alias name, but it makes no sense. So we ignore it.
('x' is ignored): pattern [... ] AS x
pattern ( ex: FROM pattern[ every a=events1 -> b=Events1(name=a.name, type=‘T’) where timer:within(1 min) ].win:time(2 hour) )
[“streamExpression”,
["patternInclusionExpression",
"pattern",
"[",
["patternExpression",
["followedByExpression",
["orExpression", ["andExpression",
["matchUntilExpression", ["qualifyExpression",
"every",
["guardPostFix",
["atomicExpression",
["patternFilterExpression", "a", "=", ["classIdentifier", ["escapableStr", "EventA"]]]]]]]]],
["followedByRepeat",
"->",
["orExpression", ["andExpression",
["matchUntilExpression", ["qualifyExpression",
["guardPostFix",
["atomicExpression",
["patternFilterExpression", "b", "=", ["classIdentifier", ["escapableStr", "EventA"]],
"(",
["expressionList", ["expression", EXPRESSION...], ",", ["expression", EXPRESSION...]],
")"],
"WHERE",
["guardWhereExpression",
"timer",
":",
"within",
"(",
["expressionWithTimeList", ["expressionWithTimeInclLast", ["expressionWithTime",
["timePeriod", ["minutePart", ["numberconstant", ["number", "1"]], "min"]]]]],
")"]]]]]]]]],
"]"]],
".",
["viewExpression",
"win",
":",
"time",
"(",
["expressionWithTimeList", ["expressionWithTimeInclLast", ["expressionWithTime",
["timePeriod", ["hourPart", ["numberconstant", ["number", "2"]], "hour"]]]]],
")"]],
1484 1485 1486 |
# File 'lib/norikra/query/ast.rb', line 1484 def targets self.listup(:pattern).map(&:target) end |