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 |