gisele 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. data/CHANGELOG.md +33 -13
  2. data/Gemfile +3 -2
  3. data/Gemfile.lock +6 -3
  4. data/LICENCE.md +1 -1
  5. data/README.md +5 -2
  6. data/Rakefile +0 -8
  7. data/examples/rectal-cancer-pathway/RectalCancerPathway.gis +1 -1
  8. data/gisele.gemspec +3 -2
  9. data/gisele.noespec +4 -3
  10. data/lib/gisele.rb +11 -7
  11. data/lib/gisele/command.rb +28 -19
  12. data/lib/gisele/compiling.rb +2 -0
  13. data/lib/gisele/compiling/to_glts.rb +125 -0
  14. data/lib/gisele/compiling/to_graph.rb +160 -0
  15. data/lib/gisele/compiling/to_graph.yml +20 -0
  16. data/lib/gisele/language.rb +22 -36
  17. data/lib/gisele/language/ast/bool_and.rb +1 -1
  18. data/lib/gisele/language/ast/bool_expr.rb +9 -1
  19. data/lib/gisele/language/ast/bool_not.rb +1 -1
  20. data/lib/gisele/language/ast/bool_or.rb +1 -1
  21. data/lib/gisele/language/ast/case_st.rb +1 -1
  22. data/lib/gisele/language/ast/else_clause.rb +1 -1
  23. data/lib/gisele/language/ast/node.rb +4 -66
  24. data/lib/gisele/language/grammar.citrus +2 -2
  25. data/lib/gisele/language/grammar.sexp.yml +83 -80
  26. data/lib/gisele/language/processors.rb +2 -2
  27. data/lib/gisele/language/processors/elsif_flattener.rb +14 -13
  28. data/lib/gisele/language/processors/if_to_case.rb +20 -18
  29. data/lib/gisele/language/processors/scoping_helper.rb +32 -0
  30. data/lib/gisele/language/processors/sugar_removal.rb +10 -5
  31. data/lib/gisele/language/syntax/case_st.rb +1 -1
  32. data/lib/gisele/language/syntax/node.rb +6 -2
  33. data/lib/gisele/language/syntax/when_clause.rb +1 -1
  34. data/lib/gisele/loader.rb +2 -1
  35. data/lib/gisele/version.rb +1 -1
  36. data/spec/command/main/gisele_glts.cmd +1 -0
  37. data/spec/command/main/gisele_glts.stdout +85 -0
  38. data/spec/command/main/gisele_help.stdout +3 -2
  39. data/spec/spec_helper.rb +2 -3
  40. data/spec/test_examples.rb +2 -2
  41. data/spec/unit/compiling/test_to_glts.rb +20 -0
  42. data/spec/unit/compiling/test_to_graph.rb +19 -0
  43. data/spec/unit/language/ast/test_bool_expr.rb +50 -0
  44. data/spec/unit/language/grammar_sexp/test_fluent_def.rb +1 -1
  45. data/spec/unit/language/processors/test_elsif_flattener.rb +3 -3
  46. data/spec/unit/language/processors/test_if_to_case.rb +7 -7
  47. data/spec/unit/language/processors/test_scoping_helper.rb +45 -0
  48. data/spec/unit/language/syntax/grammar/test_bool_expr.rb +2 -2
  49. data/spec/unit/language/syntax/grammar/test_boolean_literal.rb +2 -2
  50. data/spec/unit/language/syntax/grammar/test_case_st.rb +2 -2
  51. data/spec/unit/language/syntax/grammar/test_event.rb +2 -2
  52. data/spec/unit/language/syntax/grammar/test_event_name.rb +2 -2
  53. data/spec/unit/language/syntax/grammar/test_event_set.rb +2 -3
  54. data/spec/unit/language/syntax/grammar/test_fluent_def.rb +2 -2
  55. data/spec/unit/language/syntax/grammar/test_if_st.rb +2 -2
  56. data/spec/unit/language/syntax/grammar/test_par_st.rb +2 -2
  57. data/spec/unit/language/syntax/grammar/test_process_statement.rb +2 -2
  58. data/spec/unit/language/syntax/grammar/test_seq_st.rb +2 -2
  59. data/spec/unit/language/syntax/grammar/test_spaces.rb +2 -2
  60. data/spec/unit/language/syntax/grammar/test_spacing.rb +2 -3
  61. data/spec/unit/language/syntax/grammar/test_task_def.rb +2 -2
  62. data/spec/unit/language/syntax/grammar/test_task_name.rb +2 -2
  63. data/spec/unit/language/syntax/grammar/test_task_start_or_end.rb +2 -2
  64. data/spec/unit/language/syntax/grammar/test_trackvar_def.rb +2 -2
  65. data/spec/unit/language/syntax/grammar/test_unit_def.rb +2 -2
  66. data/spec/unit/language/syntax/grammar/test_variable_name.rb +24 -3
  67. data/spec/unit/language/syntax/grammar/test_when_clause.rb +2 -2
  68. data/spec/unit/language/syntax/grammar/test_while_st.rb +2 -2
  69. data/spec/unit/language/syntax/to_ast/test_bool_expr.rb +5 -1
  70. data/spec/unit/language/syntax/to_ast/test_case_st.rb +1 -1
  71. data/spec/unit/language/syntax/to_ast/test_else_clause.rb +1 -1
  72. data/spec/unit/language/syntax/to_ast/test_elsif_clause.rb +1 -1
  73. data/spec/unit/language/syntax/to_ast/test_event_set.rb +1 -1
  74. data/spec/unit/language/syntax/to_ast/test_fluent_def.rb +1 -1
  75. data/spec/unit/language/syntax/to_ast/test_if_st.rb +1 -1
  76. data/spec/unit/language/syntax/to_ast/test_par_st.rb +1 -1
  77. data/spec/unit/language/syntax/to_ast/test_seq_st.rb +1 -1
  78. data/spec/unit/language/syntax/to_ast/test_task_call_st.rb +1 -1
  79. data/spec/unit/language/syntax/to_ast/test_task_def.rb +1 -1
  80. data/spec/unit/language/syntax/to_ast/test_trackvar_def.rb +1 -1
  81. data/spec/unit/language/syntax/to_ast/test_unit_def.rb +1 -1
  82. data/spec/unit/language/syntax/to_ast/test_var_ref.rb +1 -1
  83. data/spec/unit/language/syntax/to_ast/test_when_clause.rb +1 -1
  84. data/spec/unit/language/syntax/to_ast/test_while_st.rb +1 -1
  85. data/spec/unit/language/test_syntax.rb +36 -38
  86. data/spec/unit/test_gisele.rb +1 -1
  87. metadata +189 -190
  88. data/lib/gisele/language/ast.rb +0 -14
  89. data/lib/gisele/language/ast/helpers.rb +0 -43
  90. data/lib/gisele/language/ast/unit_def.rb +0 -10
  91. data/lib/gisele/language/grammar.dot.yml +0 -19
  92. data/lib/gisele/language/processors/to_graph.rb +0 -146
  93. data/lib/gisele/language/rewriter.rb +0 -60
  94. data/lib/gisele/language/rewriter/helper.rb +0 -41
  95. data/lib/gisele/language/rewriter/scoping.rb +0 -34
  96. data/lib/gisele/language/rewriter/work_on_nodes.rb +0 -30
  97. data/lib/gisele/language/syntax.rb +0 -29
  98. data/spec/unit/language/ast/test_node.rb +0 -82
  99. data/spec/unit/language/processors/test_to_graph.rb +0 -17
  100. data/spec/unit/language/rewriter/test_helper.rb +0 -87
  101. data/spec/unit/language/rewriter/test_scoping.rb +0 -46
  102. data/spec/unit/language/rewriter/test_work_on_nodes.rb +0 -45
  103. data/spec/unit/language/test_ast.rb +0 -38
  104. data/spec/unit/language/test_rewriter.rb +0 -81
  105. data/spec/unit/test_language.rb +0 -35
@@ -1,28 +1,28 @@
1
1
  module Gisele
2
2
  module Language
3
- class IfToCase < Rewriter
4
- alias :on_missing :copy_and_applyall
3
+ class IfToCase < Sexpr::Rewriter
4
+ grammar Language
5
5
 
6
- def on_if_st(node)
7
- condition, dost, *clauses = node.children
6
+ def on_if_st(sexpr)
7
+ condition, dost, *clauses = sexpr.sexpr_body
8
8
 
9
9
  # create case_st with same markers as the if_st
10
- when_clause = [:when_clause, condition, mainflow.call(dost)]
11
- when_clause = node(when_clause, node.markers.dup)
10
+ when_clause = [:when_clause, condition, apply(dost)]
11
+ when_clause = sexpr(when_clause, sexpr.tracking_markers)
12
12
  base = [:case_st, nil, when_clause]
13
- base = node(base, node.markers.dup)
13
+ base = sexpr(base, sexpr.tracking_markers)
14
14
 
15
15
  # this is the condition for elsif clauses
16
16
  @condition = negate(condition.last)
17
17
 
18
18
  # make injection now
19
19
  clauses.inject base do |memo,clause|
20
- memo << call(clause)
20
+ memo << apply(clause)
21
21
  end
22
22
  end
23
23
 
24
- def on_elsif_clause(node)
25
- condition, dost, = node.children
24
+ def on_elsif_clause(sexpr)
25
+ condition, dost, = sexpr.sexpr_body
26
26
 
27
27
  # install new conditions for me and next elsif clauses
28
28
  condition = condition.last
@@ -33,25 +33,27 @@ module Gisele
33
33
  base = \
34
34
  [:when_clause,
35
35
  [:bool_expr, [:bool_and, condition, previous]],
36
- mainflow.call(dost) ]
37
- node(base, node.markers.dup)
36
+ apply(dost) ]
37
+ sexpr(base, sexpr.tracking_markers)
38
38
  end
39
39
 
40
- def on_else_clause(node)
41
- dost, = node.children
40
+ def on_else_clause(sexpr)
41
+ dost, = sexpr.sexpr_body
42
42
 
43
43
  # convert else to when and keep the markers
44
44
  base = \
45
45
  [:when_clause,
46
46
  [:bool_expr, @condition],
47
- mainflow.call(dost)]
48
- node(base, node.markers.dup)
47
+ apply(dost)]
48
+ sexpr(base, sexpr.tracking_markers)
49
49
  end
50
50
 
51
+ alias :on_missing :copy_and_apply
52
+
51
53
  private
52
54
 
53
55
  def negate(cond)
54
- if cond.rule_name == :bool_not
56
+ if cond.first == :bool_not
55
57
  cond.last
56
58
  else
57
59
  [:bool_not, cond]
@@ -60,4 +62,4 @@ module Gisele
60
62
 
61
63
  end # class IfToCase
62
64
  end # module Language
63
- end # module Gisele
65
+ end # module Gisele
@@ -0,0 +1,32 @@
1
+ module Gisele
2
+ module Language
3
+ class ScopingHelper < Sexpr::Processor::Helper
4
+
5
+ module Methods
6
+
7
+ def scope_stack
8
+ @scope_stack ||= []
9
+ end
10
+
11
+ def with_scope(scope)
12
+ scope_stack.push(scope)
13
+ result = yield
14
+ scope_stack.pop
15
+ result
16
+ end
17
+
18
+ end # module Methods
19
+
20
+ def on_missing(rw, sexpr)
21
+ if sexpr.first.to_s =~ /_def/
22
+ rw.with_scope(sexpr) do
23
+ yield(rw, sexpr)
24
+ end
25
+ else
26
+ yield(rw, sexpr)
27
+ end
28
+ end
29
+
30
+ end # module ScopingHelper
31
+ end # module Language
32
+ end # module Gisele
@@ -1,12 +1,17 @@
1
1
  module Gisele
2
2
  module Language
3
- class SugarRemoval < Rewriter
4
- alias :on_missing :copy_and_applyall
3
+ class SugarRemoval < Sexpr::Rewriter
4
+ grammar Language
5
5
 
6
- def on_if_st(node)
7
- ElsifFlattener.new(:mainflow => self).call(node)
6
+ # (elsif ... -> else if ...)
7
+ use ElsifFlattener
8
+
9
+ def apply(sexpr)
10
+ # all is already done by preprocessors so that we can simply return
11
+ # the s-expression.
12
+ sexpr
8
13
  end
9
14
 
10
15
  end # class SugarRemoval
11
16
  end # module Language
12
- end # module Gisele
17
+ end # module Gisele
@@ -16,4 +16,4 @@ module Gisele
16
16
  end # module CaseSt
17
17
  end # module Syntax
18
18
  end # module Language
19
- end # module Gisele
19
+ end # module Gisele
@@ -4,7 +4,11 @@ module Gisele
4
4
  module Node
5
5
 
6
6
  def to_ast
7
- Language::AST.node(_to_ast, {:match => self})
7
+ Language::sexpr(value, {:citrus_match => self})
8
+ end
9
+
10
+ def value
11
+ _to_ast
8
12
  end
9
13
 
10
14
  end # module Node
@@ -33,4 +37,4 @@ require_relative 'elsif_clause'
33
37
  require_relative 'case_st'
34
38
  require_relative 'when_clause'
35
39
  require_relative 'task_def'
36
- require_relative 'unit_def'
40
+ require_relative 'unit_def'
@@ -13,4 +13,4 @@ module Gisele
13
13
  end # module WhenClause
14
14
  end # module Syntax
15
15
  end # module Language
16
- end # module Gisele
16
+ end # module Gisele
@@ -3,4 +3,5 @@ require "epath"
3
3
  require "quickl"
4
4
  require "awesome_print"
5
5
  require "yargi"
6
- require "sexp_grammar"
6
+ require "sexpr"
7
+ require "stamina-core"
@@ -2,7 +2,7 @@ module Gisele
2
2
  module Version
3
3
 
4
4
  MAJOR = 0
5
- MINOR = 4
5
+ MINOR = 5
6
6
  TINY = 0
7
7
 
8
8
  def self.to_s
@@ -0,0 +1 @@
1
+ gisele --glts tasks/complete.gis
@@ -0,0 +1,85 @@
1
+ digraph G {
2
+ graph [rankdir="LR"];
3
+ 0 [color="black" fillcolor="green" shape="circle" style="filled"];
4
+ 2 [color="black" fillcolor="white" shape="circle" style="filled"];
5
+ 4 [color="black" fillcolor="white" shape="circle" style="filled"];
6
+ 6 [color="black" fillcolor="white" shape="circle" style="filled"];
7
+ 5 [color="black" fillcolor="white" shape="circle" style="filled"];
8
+ 7 [color="black" fillcolor="white" shape="circle" style="filled"];
9
+ 9 [color="black" fillcolor="white" shape="circle" style="filled"];
10
+ 10 [color="black" fillcolor="white" shape="circle" style="filled"];
11
+ 21 [color="black" fillcolor="white" shape="circle" style="filled"];
12
+ 18 [color="black" fillcolor="white" shape="circle" style="filled"];
13
+ 23 [color="black" fillcolor="white" shape="circle" style="filled"];
14
+ 20 [color="black" fillcolor="white" shape="circle" style="filled"];
15
+ 12 [color="black" fillcolor="white" shape="circle" style="filled"];
16
+ 22 [color="black" fillcolor="white" shape="circle" style="filled"];
17
+ 14 [color="black" fillcolor="white" shape="circle" style="filled"];
18
+ 19 [color="black" fillcolor="white" shape="circle" style="filled"];
19
+ 8 [color="black" fillcolor="white" shape="circle" style="filled"];
20
+ 13 [color="black" fillcolor="white" shape="circle" style="filled"];
21
+ 15 [color="black" fillcolor="white" shape="circle" style="filled"];
22
+ 24 [color="black" fillcolor="white" shape="circle" style="filled"];
23
+ 17 [color="black" fillcolor="white" shape="circle" style="filled"];
24
+ 26 [color="black" fillcolor="white" shape="circle" style="filled"];
25
+ 16 [color="black" fillcolor="white" shape="circle" style="filled"];
26
+ 25 [color="black" fillcolor="white" shape="circle" style="filled"];
27
+ 27 [color="black" fillcolor="white" shape="circle" style="filled"];
28
+ 3 [color="black" fillcolor="white" shape="circle" style="filled"];
29
+ 29 [color="black" fillcolor="white" shape="circle" style="filled"];
30
+ 11 [color="black" fillcolor="white" shape="circle" style="filled"];
31
+ 36 [color="black" fillcolor="white" shape="circle" style="filled"];
32
+ 1 [color="black" fillcolor="white" shape="circle" style="filled"];
33
+ 30 [color="black" fillcolor="white" shape="circle" style="filled"];
34
+ 33 [color="black" fillcolor="white" shape="circle" style="filled"];
35
+ 32 [color="black" fillcolor="white" shape="circle" style="filled"];
36
+ 38 [color="black" fillcolor="white" shape="circle" style="filled"];
37
+ 35 [color="black" fillcolor="white" shape="circle" style="filled"];
38
+ 34 [color="black" fillcolor="white" shape="circle" style="filled"];
39
+ 37 [color="black" fillcolor="white" shape="circle" style="filled"];
40
+ 31 [color="black" fillcolor="white" shape="circle" style="filled"];
41
+ 28 [color="black" fillcolor="white" shape="circle" style="filled"];
42
+ 4 -> 6 [label="FirstTask:start"];
43
+ 6 -> 5 [label="FirstTask:end"];
44
+ 2 -> 4 [label=""];
45
+ 7 -> 9 [label=""];
46
+ 12 -> 14 [label="MakeJoy:start"];
47
+ 14 -> 13 [label="MakeJoy:end"];
48
+ 10 -> 12 [label=""];
49
+ 15 -> 17 [label="DrinkBeers:start"];
50
+ 17 -> 16 [label="DrinkBeers:end"];
51
+ 13 -> 15 [label=""];
52
+ 16 -> 11 [label=""];
53
+ 9 -> 10 [label="[everyoneHappy]"];
54
+ 11 -> 8 [label=""];
55
+ 18 -> 20 [label="DrinkBeer:start"];
56
+ 20 -> 19 [label="DrinkBeer:end"];
57
+ 9 -> 18 [label="[(someoneHappy and not(everyoneHappy))]"];
58
+ 19 -> 8 [label=""];
59
+ 21 -> 23 [label="DoNothingSpecial:start"];
60
+ 23 -> 22 [label="DoNothingSpecial:end"];
61
+ 9 -> 21 [label="[(not(someoneHappy) and not(everyoneHappy))]"];
62
+ 22 -> 8 [label=""];
63
+ 5 -> 7 [label=""];
64
+ 24 -> 26 [label=""];
65
+ 27 -> 29 [label=""];
66
+ 30 -> 32 [label="DoSomething:start"];
67
+ 32 -> 31 [label="DoSomething:end"];
68
+ 29 -> 30 [label="[somethingToDo]"];
69
+ 31 -> 28 [label=""];
70
+ 33 -> 35 [label="DoNothing:start"];
71
+ 35 -> 34 [label="DoNothing:end"];
72
+ 29 -> 33 [label="[nothingToDo]"];
73
+ 34 -> 28 [label=""];
74
+ 36 -> 38 [label="WaitAndSee:start"];
75
+ 38 -> 37 [label="WaitAndSee:end"];
76
+ 29 -> 36 [label="[(not(someoneHappy) and not(everyoneHappy))]"];
77
+ 37 -> 28 [label=""];
78
+ 26 -> 25 [label="[endOfTheDay]"];
79
+ 26 -> 27 [label="[not(endOfTheDay)]"];
80
+ 28 -> 26 [label=""];
81
+ 8 -> 24 [label=""];
82
+ 25 -> 3 [label=""];
83
+ 0 -> 2 [label=""];
84
+ 3 -> 1 [label=""];
85
+ }
@@ -6,9 +6,10 @@ SYNOPSIS
6
6
  gisele [--ast | --graph] PROCESS_FILE
7
7
 
8
8
  OPTIONS
9
- --ast=[MODE] Prints the process abstract syntax tree (debug,ruby)
10
9
  --no-sugar Apply syntactic sugar removal
11
- --graph=[MODE] Converts and print a graph (dot)
10
+ --ast=[MODE] Compile as an abstract syntax tree (debug,ruby)
11
+ --graph=[MODE] Compile as a workflow graph (dot)
12
+ --glts=[MODE] Compile as guarded labeled transition system (dot)
12
13
  --help Show this help message
13
14
  --version Show version and exit
14
15
 
@@ -12,10 +12,9 @@ ensure
12
12
  end
13
13
 
14
14
  module SpecHelpers
15
- include Gisele::Language::AST::Helpers
16
15
 
17
16
  def parse(text, rule, consume = true)
18
- grammar = Gisele::Language::Syntax::Grammar
17
+ grammar = Gisele::Language::Grammar
19
18
  grammar.parse(text, :root => rule, :consume => consume)
20
19
  end
21
20
 
@@ -36,7 +35,7 @@ module SpecHelpers
36
35
  end
37
36
 
38
37
  def sexp_grammar
39
- Gisele::Language::SEXP_GRAMMAR
38
+ Gisele::Language
40
39
  end
41
40
 
42
41
  def simple_ast
@@ -12,11 +12,11 @@ describe "The examples" do
12
12
  end
13
13
 
14
14
  it 'respects the SexpGrammar' do
15
- (Gisele::Language::SEXP_GRAMMAR === ast).should be_true
15
+ (Gisele::Language === ast).should be_true
16
16
  end
17
17
 
18
18
  end
19
19
 
20
20
  end
21
21
 
22
- end
22
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ module Gisele
3
+ module Compiling
4
+ describe ToGlts do
5
+
6
+ it 'returns an array of Automaton when called on a unit_def' do
7
+ got = ToGlts.call(complete_ast)
8
+ got.should be_a(Array)
9
+ got.all?{|x| x.is_a? Stamina::Automaton}.should be_true
10
+ end
11
+
12
+ it 'returns a Digraph when called on a task_def' do
13
+ got = ToGlts.call(complete_ast.last)
14
+ got.should be_a(Stamina::Automaton)
15
+ got.depth
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ module Gisele
3
+ module Compiling
4
+ describe ToGraph do
5
+
6
+ it 'returns an array of Digraphs when called on a unit_def' do
7
+ got = ToGraph.call(complete_ast)
8
+ got.should be_a(Array)
9
+ got.all?{|x| x.is_a? Yargi::Digraph}.should be_true
10
+ end
11
+
12
+ it 'returns a Digraph when called on a task_def' do
13
+ got = ToGraph.call(complete_ast.last)
14
+ got.should be_a(Yargi::Digraph)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+ module Gisele::Language::AST
3
+ describe BoolExpr, "negate" do
4
+
5
+ def sexpr(expr, options = {})
6
+ Gisele.sexpr(Gisele.parse(expr, options))
7
+ end
8
+
9
+ subject{ sexpr(expr, :root => :bool_expr).negate }
10
+
11
+ shared_examples_for 'A negated bool_expr' do
12
+
13
+ it 'is consistently rewrited' do
14
+ (Gisele::Language[:bool_expr] === subject).should be_true
15
+ end
16
+
17
+ it 'is correctly tagged' do
18
+ subject.should be_a(Sexpr)
19
+ subject.should be_a(BoolExpr)
20
+ end
21
+
22
+ it 'has no immediate traceability marker' do
23
+ subject.citrus_match.should be_nil
24
+ end
25
+ end
26
+
27
+ describe "on a normal expression" do
28
+ let(:expr){ "x and y" }
29
+
30
+ it_behaves_like 'A negated bool_expr'
31
+
32
+ it "negates as expected" do
33
+ expected = sexpr("not(x and y)", :root => :bool_expr)
34
+ subject.should eq(expected)
35
+ end
36
+ end
37
+
38
+ describe "on a negated expression" do
39
+ let(:expr){ "not(x and y)" }
40
+
41
+ it_behaves_like 'A negated bool_expr'
42
+
43
+ it "removes the negation" do
44
+ expected = sexpr("x and y", :root => :bool_expr)
45
+ subject.should eq(expected)
46
+ end
47
+ end
48
+
49
+ end
50
+ end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  module Gisele::Language
3
3
  describe "the Sexp grammar", "fluent_def" do
4
4
 
5
- let(:g){ SEXP_GRAMMAR }
5
+ let(:g){ Gisele::Language }
6
6
 
7
7
  it 'matches an fluent with initial value' do
8
8
  fluent = [:fluent_def, "name", [:event_set, "start"], [:event_set, "stop"], true]
@@ -3,11 +3,11 @@ module Gisele::Language
3
3
  describe ElsifFlattener do
4
4
 
5
5
  def ast(source)
6
- Syntax.ast(source.strip, :root => :if_st)
6
+ Gisele.ast(Gisele.parse(source.strip, :root => :if_st))
7
7
  end
8
8
 
9
9
  def rewrite(ast)
10
- @rewrited = ElsifFlattener.new.call(ast)
10
+ @rewrited = ElsifFlattener.call(ast)
11
11
  end
12
12
 
13
13
  after{
@@ -91,4 +91,4 @@ module Gisele::Language
91
91
  end
92
92
 
93
93
  end
94
- end
94
+ end