Module: GenMachine::Helpers::General

Included in:
Generators::RubyGenerator
Defined in:
lib/genmachine/generators/general_helper.rb

Instance Method Summary collapse

Instance Method Details

#accumulates?(states) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
25
26
27
# File 'lib/genmachine/generators/general_helper.rb', line 18

def accumulates?(states)
  states.each do |name,clauses|
    clauses.each do |c|
      c[:exprs].each do |e|
        return true if e =~ /\bs\s*>>/
      end
    end
  end
  return false
end

#accumulators(states) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/genmachine/generators/general_helper.rb', line 29

def accumulators(states)
  accs = {}
  states.each do |name,clauses|
    clauses.each do |c|
      exprs = c[:exprs].dup
      exprs << c[:acc].dup
      exprs.each do |e|
        if e =~ /^([a-zA-Z_][a-zA-Z0-9_]*)?\s*>>>?\s*([a-zA-Z_][a-zA-Z0-9_]*)?$/
          accs[$1]=true unless ($1.nil? or $1 == '' or $1 == 'p' or $1 == 's')
          accs[$3]=true unless ($3.nil? or $3 == '' or $3 == 'p' or $3 == 's')
        end
      end
    end
  end
  return accs.keys
end

#eof_clause?(clauses) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
59
# File 'lib/genmachine/generators/general_helper.rb', line 56

def eof_clause?(clauses)
  clauses.each{|c| return true if c[:cond].include?('eof')}
  return false
end

#eof_state?(states) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
# File 'lib/genmachine/generators/general_helper.rb', line 51

def eof_state?(states)
  states.each{|name,clauses| return true if name=='{eof}'}
  return false
end

#makes_calls?(states) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
49
# File 'lib/genmachine/generators/general_helper.rb', line 46

def makes_calls?(states)
  # TODO: implement
  false
end