Module: Flor::Caller::CmdParser
- Includes:
- Raabro
- Defined in:
- lib/flor/unit/caller_jruby.rb
Instance Method Summary collapse
- #cmd(i) ⇒ Object
- #cmdline(i) ⇒ Object
- #dqstring(i) ⇒ Object
- #equal(i) ⇒ Object
- #item(i) ⇒ Object
-
#rewrite_cmd(t) ⇒ Object
because of ‘ruby -e “sleep”` :-( is there another way?.
- #rewrite_cmdline(t) ⇒ Object
- #rewrite_string(t) ⇒ Object
- #rewrite_vars(ts) ⇒ Object
-
#rewrite_word(t) ⇒ Object
rewriting.
-
#separator(i) ⇒ Object
parsing.
- #sqstring(i) ⇒ Object
- #var(i) ⇒ Object
- #vkey(i) ⇒ Object
- #vval(i) ⇒ Object
- #word(i) ⇒ Object
Instance Method Details
#cmd(i) ⇒ Object
90 |
# File 'lib/flor/unit/caller_jruby.rb', line 90 def cmd(i); jseq(:cmd, i, :item, :separator); end |
#cmdline(i) ⇒ Object
97 |
# File 'lib/flor/unit/caller_jruby.rb', line 97 def cmdline(i); seq(:cmdline, i, :var, '*', :cmd) end |
#dqstring(i) ⇒ Object
85 |
# File 'lib/flor/unit/caller_jruby.rb', line 85 def dqstring(i); rex(:string, i, /"(\\"|[^"])*"/); end |
#equal(i) ⇒ Object
92 |
# File 'lib/flor/unit/caller_jruby.rb', line 92 def equal(i); rex(nil, i, /[ ]*=[ ]*/); end |
#item(i) ⇒ Object
89 |
# File 'lib/flor/unit/caller_jruby.rb', line 89 def item(i); alt(nil, i, :word, :sqstring, :dqstring); end |
#rewrite_cmd(t) ⇒ Object
because of ‘ruby -e “sleep”` :-( is there another way?
110 111 112 113 |
# File 'lib/flor/unit/caller_jruby.rb', line 110 def rewrite_cmd(t) t.subgather(nil).collect { |tt| rewrite(tt) } end |
#rewrite_cmdline(t) ⇒ Object
124 125 126 127 128 129 |
# 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) ⇒ Object
103 104 105 106 |
# 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) ⇒ Object
115 116 117 118 119 120 121 122 |
# 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) ⇒ Object
rewriting
101 |
# File 'lib/flor/unit/caller_jruby.rb', line 101 def rewrite_word(t); t.string; end |
#separator(i) ⇒ Object
parsing
83 |
# File 'lib/flor/unit/caller_jruby.rb', line 83 def separator(i); rex(nil, i, /[ ]+/); end |
#sqstring(i) ⇒ Object
86 |
# File 'lib/flor/unit/caller_jruby.rb', line 86 def sqstring(i); rex(:string, i, /'(\\'|[^'])*'/); end |
#var(i) ⇒ Object
95 |
# File 'lib/flor/unit/caller_jruby.rb', line 95 def var(i); seq(:var, i, :vkey, :equal, :vval, :separator); end |
#vkey(i) ⇒ Object
94 |
# 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) ⇒ Object
93 |
# File 'lib/flor/unit/caller_jruby.rb', line 93 def vval(i); alt(:vval, i, :word, :sqstring, :dqstring); end |
#word(i) ⇒ Object
88 |
# File 'lib/flor/unit/caller_jruby.rb', line 88 def word(i); rex(:word, i, /[^ "']+/); end |