module Flor::Caller::CmdParser
Public Instance Methods
cmd(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 90 def cmd(i); jseq(:cmd, i, :item, :separator); end
cmdline(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 97 def cmdline(i); seq(:cmdline, i, :var, '*', :cmd) end
dqstring(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 85 def dqstring(i); rex(:string, i, /"(\\"|[^"])*"/); end
equal(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 92 def equal(i); rex(nil, i, /[ ]*=[ ]*/); end
item(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 89 def item(i); alt(nil, i, :word, :sqstring, :dqstring); end
rewrite_cmd(t)
click to toggle source
because of ‘ruby -e “sleep”` :-( is there another way?
# File lib/flor/unit/caller_jruby.rb, line 110 def rewrite_cmd(t) t.subgather(nil).collect { |tt| rewrite(tt) } end
rewrite_cmdline(t)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 124 def rewrite_cmdline(t) #Raabro.pp(t, colours: true) [ rewrite_vars(t.subgather(:var)), *t.lookup(:cmd).subgather(nil).collect { |tt| rewrite(tt) } ] end
rewrite_string(t)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 103 def rewrite_string(t) s = t.string[1..-2] s == 'sleep' ? t.string : s # ah, the awful thing :-( end
rewrite_vars(ts)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 115 def rewrite_vars(ts) ts.inject({}) { |h, t| k = t.lookup(:vkey).string v = t.lookup(:vval).string; v = v[1..-2] unless t.lookup(:word) h[k] = v h } end
rewrite_word(t)
click to toggle source
rewriting
# File lib/flor/unit/caller_jruby.rb, line 101 def rewrite_word(t); t.string; end
separator(i)
click to toggle source
parsing
# File lib/flor/unit/caller_jruby.rb, line 83 def separator(i); rex(nil, i, /[ ]+/); end
sqstring(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 86 def sqstring(i); rex(:string, i, /'(\\'|[^'])*'/); end
var(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 95 def var(i); seq(:var, i, :vkey, :equal, :vval, :separator); end
vkey(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 94 def vkey(i); rex(:vkey, i, /[a-zA-Z_][a-zA-Z_0-9]*/); end
vval(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 93 def vval(i); alt(:vval, i, :word, :sqstring, :dqstring); end
word(i)
click to toggle source
# File lib/flor/unit/caller_jruby.rb, line 88 def word(i); rex(:word, i, /[^ "']+/); end