module GenMachine::Helpers::General

Public Instance Methods

accumulates?(states) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/genmachine/generators/general_helper.rb, line 46
def makes_calls?(states)
  # TODO: implement
  false
end