diff options
author | Nat Lasseter <Nat Lasseter user@4574.co.uk> | 2018-02-16 16:33:10 +0000 |
---|---|---|
committer | Nat Lasseter <Nat Lasseter user@4574.co.uk> | 2018-02-16 16:33:10 +0000 |
commit | dbb55f88451d27c4343da544e2a6577897bd7bd8 (patch) | |
tree | 5aa1a9066ebaefb9129d72c6e41573b873e710c5 /parse.rb | |
parent | 7602b8f0aca806dbb2d521c006f87d2e6d6753b0 (diff) |
Making things much worse but functions are now callable
Diffstat (limited to 'parse.rb')
-rw-r--r-- | parse.rb | 16 |
1 files changed, 5 insertions, 11 deletions
@@ -14,32 +14,26 @@ def sub_vars(string) return outvars.join(", "), blockvars.join(", ") end -def sub_funs(string, funs) - funs.each do |fun| - string.gsub!(/#{fun}\((.*?)\)/, "#{fun}.call(\\1)") - end - return string -end - lines = $stdin.readlines.map(&:chomp) funs = [] puts "require './patter'" +puts "include Patter" puts lines.each do |line| if line =~ /\s*([a-z_][a-zA-Z0-9_]*?)\((.*)\) is\s*$/ then unless funs.include?($1) then funs << $1 - puts "#{$1} = Patter::Fun.new" + puts "patterfun#{$1} = Patter::Fun.new(:#{$1})" end arg, blk = sub_vars($2) if blk.empty? then - puts "#{$1}.when(#{arg}) do" + puts "patterfun#{$1}.when(#{arg}) do" else - puts "#{$1}.when(#{arg}) do |#{blk}|" + puts "patterfun#{$1}.when(#{arg}) do |#{blk}|" end else - puts sub_funs(line, funs) + puts line end end |