livetext 0.9.26 → 0.9.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/livetext/funcall.rb +13 -94
- data/lib/livetext/lineparser.rb +165 -31
- data/lib/livetext/parser/string.rb +14 -5
- data/lib/livetext/skeleton.rb +0 -4
- data/lib/livetext/standard.rb +2 -2
- data/lib/livetext/userapi.rb +0 -1
- data/lib/livetext/version.rb +1 -1
- data/lib/livetext.rb +0 -1
- data/test/snapshots/basic_formatting/actual-output.txt +8 -8
- data/test/snapshots/basic_formatting/out-sdiff.txt +8 -8
- data/test/snapshots/functions/actual-error.txt +19 -0
- data/test/snapshots/functions/actual-output.txt +0 -0
- data/test/snapshots/functions/err-sdiff.txt +20 -0
- data/test/snapshots/more_complex_vars/actual-error.txt +0 -0
- data/test/snapshots/more_complex_vars/actual-output.txt +4 -0
- data/test/snapshots/more_complex_vars/err-sdiff.txt +1 -0
- data/test/snapshots/more_complex_vars/out-sdiff.txt +5 -0
- data/test/snapshots/more_functions/actual-error.txt +19 -0
- data/test/snapshots/more_functions/actual-output.txt +0 -37
- data/test/snapshots/more_functions/err-sdiff.txt +19 -0
- data/test/snapshots/raw_lines/actual-error.txt +22 -0
- data/test/snapshots/raw_lines/actual-output.txt +0 -0
- data/test/snapshots/raw_lines/err-sdiff.txt +23 -0
- data/test/snapshots/simple_vars/actual-output.txt +2 -2
- data/test/snapshots/simple_vars/out-sdiff.txt +2 -2
- data/test/snapshots/var_into_func/actual-error.txt +19 -0
- data/test/snapshots/var_into_func/actual-output.txt +0 -16
- data/test/snapshots/var_into_func/err-sdiff.txt +19 -0
- data/test/unit/all.rb +0 -1
- data/test/unit/lineparser.rb +62 -353
- data/test/unit/new_lineparser.rb +359 -0
- data/test/unit/tokenizer.rb +2 -1
- metadata +13 -6
- data/lib/livetext/formatline.rb +0 -408
- data/test/snapshots/more_functions/out-sdiff.txt +0 -38
- data/test/testlines.rb +0 -37
- data/test/unit/formatline.rb +0 -638
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47f377b248a2fdc2136cf68dc4a05596629723072ef84ce52b6aaea0a02edb03
|
4
|
+
data.tar.gz: 3867a6a0ca695985aed1555eefcc93193bb530dc1d43047f2c70c8b9b5f37744
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4d46b9519adeee2385e686739b4b29580c76cacf71d6bc8ed3679573378a19e54833c199e000a8a457d7561d1c68855e9b64805cbd599f54eb61bd902f49a38
|
7
|
+
data.tar.gz: 5183aa745907e4680f3b30b5a27dabc76373cc9e7926fb0df936b6f0e812681a9bc51b6533410532bdfe23e37774ba02981926cec8f5e16b4730e899a06a1489
|
data/lib/livetext/funcall.rb
CHANGED
@@ -37,6 +37,7 @@ module Livetext::LineParser::FunCall
|
|
37
37
|
|
38
38
|
def funcall(name, param)
|
39
39
|
err = "[Error evaluating $$#{name}(#{param})]"
|
40
|
+
name = name.gsub(/\./, "__")
|
40
41
|
result =
|
41
42
|
if self.send?(name, param)
|
42
43
|
# do nothing
|
@@ -51,7 +52,7 @@ module Livetext::LineParser::FunCall
|
|
51
52
|
add_token(:str, @token)
|
52
53
|
func = grab_alpha
|
53
54
|
add_token(:func, func)
|
54
|
-
param = grab_func_param # may be null/missing
|
55
|
+
param = grab_func_param(grab) # may be null/missing
|
55
56
|
param
|
56
57
|
end
|
57
58
|
|
@@ -64,17 +65,17 @@ module Livetext::LineParser::FunCall
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
68
|
+
# def grab_func_param
|
69
|
+
# case peek
|
70
|
+
# when "["
|
71
|
+
# param = grab_bracket_param
|
72
|
+
# add_token(:brackets, param)
|
73
|
+
# when ":"
|
74
|
+
# param = grab_colon_param
|
75
|
+
# add_token(:colon, param)
|
76
|
+
# else # do nothing
|
77
|
+
# end
|
78
|
+
# end
|
78
79
|
|
79
80
|
def escaped
|
80
81
|
grab # Eat the backslash
|
@@ -84,85 +85,3 @@ module Livetext::LineParser::FunCall
|
|
84
85
|
|
85
86
|
end
|
86
87
|
|
87
|
-
|
88
|
-
# FIXME...
|
89
|
-
|
90
|
-
module Livetext::FormatLine::FunCall
|
91
|
-
|
92
|
-
include Livetext::ParsingConstants
|
93
|
-
|
94
|
-
def param_loop(char)
|
95
|
-
param = ""
|
96
|
-
loop do
|
97
|
-
case peek
|
98
|
-
when Escape
|
99
|
-
param << escaped
|
100
|
-
when char, LF, nil
|
101
|
-
break
|
102
|
-
else
|
103
|
-
param << peek
|
104
|
-
grab
|
105
|
-
end
|
106
|
-
end
|
107
|
-
param = nil if param.empty?
|
108
|
-
param
|
109
|
-
end
|
110
|
-
|
111
|
-
def grab_colon_param
|
112
|
-
grab # grab :
|
113
|
-
param = param_loop(Space)
|
114
|
-
end
|
115
|
-
|
116
|
-
def grab_bracket_param
|
117
|
-
grab # [
|
118
|
-
param = param_loop("]")
|
119
|
-
grab # "]"
|
120
|
-
param
|
121
|
-
end
|
122
|
-
|
123
|
-
def funcall(name, param)
|
124
|
-
err = "[Error evaluating $$#{name}(#{param})]"
|
125
|
-
func_name = name # "func_" + name.to_s
|
126
|
-
result =
|
127
|
-
if self.send?(func_name, param) # self.respond_to?(func_name)
|
128
|
-
# do nothing
|
129
|
-
else
|
130
|
-
fobj = ::Livetext::Functions.new
|
131
|
-
fobj.send(name, param) rescue err
|
132
|
-
end
|
133
|
-
result.to_s
|
134
|
-
end
|
135
|
-
|
136
|
-
def double_dollar
|
137
|
-
case lookahead
|
138
|
-
when Space; add_token :string, "$$ "; grab; return
|
139
|
-
when LF, nil; add "$$"; add_token :str
|
140
|
-
when Alpha
|
141
|
-
add_token(:str, @token)
|
142
|
-
func = grab_alpha
|
143
|
-
add_token(:func, func)
|
144
|
-
param = grab_func_param # may be null/missing
|
145
|
-
else
|
146
|
-
grab; add_token :str, "$$" + peek; return
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
def grab_func_param
|
151
|
-
case lookahead
|
152
|
-
when "["
|
153
|
-
param = grab_bracket_param
|
154
|
-
add_token(:brackets, param)
|
155
|
-
when ":"
|
156
|
-
param = grab_colon_param
|
157
|
-
add_token(:colon, param)
|
158
|
-
else # do nothing
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
def escaped
|
163
|
-
grab # Eat the backslash
|
164
|
-
ch = grab # Take next char
|
165
|
-
ch
|
166
|
-
end
|
167
|
-
|
168
|
-
end
|
data/lib/livetext/lineparser.rb
CHANGED
@@ -11,11 +11,19 @@ class Livetext::LineParser < StringParser
|
|
11
11
|
|
12
12
|
FMTS = %w[* _ ~ `]
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
Ident = "[[:alpha:]]([[:alnum:]]|_)*"
|
15
|
+
Dotted = "#{Ident}(\\.#{Ident})*"
|
16
|
+
Func = "\\$\\$"
|
17
|
+
Var = "\\$"
|
18
|
+
Lbrack = "\\["
|
19
|
+
Colon = ":"
|
16
20
|
|
17
21
|
def initialize(line)
|
18
22
|
super
|
23
|
+
@rx_func_brack = Regexp.compile("^" + Func + Dotted + Lbrack)
|
24
|
+
@rx_func_colon = Regexp.compile("^" + Func + Dotted + Colon)
|
25
|
+
@rx_func_bare = Regexp.compile("^" + Func + Dotted)
|
26
|
+
@rx_var = Regexp.compile("^" + Var + Dotted)
|
19
27
|
@token = Null.dup
|
20
28
|
@tokenlist = []
|
21
29
|
@live = Livetext.new
|
@@ -41,6 +49,14 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
41
49
|
result
|
42
50
|
end
|
43
51
|
|
52
|
+
|
53
|
+
def parse_formatting_brute_force
|
54
|
+
# For each format * _ ` ~
|
55
|
+
# search for: [Space|^] Char Char .* [\.,]|$
|
56
|
+
# search for: [Space|^] Char [^\[]* Space|$
|
57
|
+
# search for: [Space|^] Char \[ [^\]*] ]|$
|
58
|
+
end
|
59
|
+
|
44
60
|
def parse_formatting
|
45
61
|
loop do
|
46
62
|
case peek
|
@@ -60,7 +76,123 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
60
76
|
add_token(:str)
|
61
77
|
@tokenlist
|
62
78
|
end
|
79
|
+
|
80
|
+
def grab_str
|
81
|
+
@buffer = ""
|
82
|
+
loop do
|
83
|
+
@buffer << self.grab
|
84
|
+
break if remainder.empty? || self.peek == "$"
|
85
|
+
end
|
86
|
+
@buffer
|
87
|
+
end
|
88
|
+
|
89
|
+
def grab_dd
|
90
|
+
@buffer = self.grab(2)
|
91
|
+
add_token(:str, @buffer)
|
92
|
+
@buffer = ""
|
93
|
+
end
|
94
|
+
|
95
|
+
def grab_var
|
96
|
+
matched = @rx_var.match(remainder)
|
97
|
+
vname = matched[0]
|
98
|
+
add_token(:var, vname[1..-1])
|
99
|
+
grab(vname.length)
|
100
|
+
end
|
101
|
+
|
102
|
+
def parse_variables
|
103
|
+
@buffer = ""
|
104
|
+
loop do
|
105
|
+
case
|
106
|
+
when remainder.empty? # end of string
|
107
|
+
break
|
108
|
+
when self.peek != "$" # Junk
|
109
|
+
str = grab_str
|
110
|
+
add_token(:str, str)
|
111
|
+
when self.peek(2) == "$$" # Func?
|
112
|
+
grab_dd
|
113
|
+
when self.peek == "$" # Var?
|
114
|
+
grab_var
|
115
|
+
end
|
116
|
+
end
|
117
|
+
@tokenlist
|
118
|
+
end
|
119
|
+
|
120
|
+
def grab_until(char)
|
121
|
+
string = ""
|
122
|
+
loop do
|
123
|
+
break if remainder.empty? || peek == char
|
124
|
+
string << grab
|
125
|
+
end
|
126
|
+
# ch = grab # eat the delimiter
|
127
|
+
# check ch == char ?
|
128
|
+
string
|
129
|
+
end
|
130
|
+
|
131
|
+
def grab_func_param(which)
|
132
|
+
case which
|
133
|
+
when ":"
|
134
|
+
param = grab_until(" ") # don't eat the space
|
135
|
+
when "["
|
136
|
+
param = grab_until("]")
|
137
|
+
grab # eat the ]
|
138
|
+
else
|
139
|
+
ungrab # just "forget" this character
|
140
|
+
param = nil
|
141
|
+
# abort "#{__method__}: Can't happen - which = #{which.inspect}"
|
142
|
+
end
|
143
|
+
param
|
144
|
+
end
|
145
|
+
|
146
|
+
def grab_funcall
|
147
|
+
matched = func_name = param = nil
|
148
|
+
case
|
149
|
+
when remainder.empty?
|
150
|
+
return
|
151
|
+
when matched = @rx_func_brack.match(remainder)
|
152
|
+
func_name = matched[0]
|
153
|
+
grab(2) # eat the $$
|
154
|
+
func_name = grab(func_name.length-3) # $$...[
|
155
|
+
param = grab_func_param(grab) # "["
|
156
|
+
add_token(:func, func_name, :brackets, param)
|
157
|
+
# Livetext::TTY.puts "1 matched is #{matched.inspect}"
|
158
|
+
when matched = @rx_func_colon.match(remainder)
|
159
|
+
func_name = matched[0]
|
160
|
+
grab(2) # eat the $$
|
161
|
+
func_name = grab(func_name.length-3) # $$...:
|
162
|
+
param = grab_func_param(grab) # ":"
|
163
|
+
add_token(:func, func_name, :colon, param)
|
164
|
+
# Livetext::TTY.puts "2 matched is #{matched.inspect}"
|
165
|
+
when matched = @rx_func_bare.match(remainder)
|
166
|
+
func_name = matched[0]
|
167
|
+
grab(2) # eat the $$
|
168
|
+
func_name = grab(func_name.length-2) # $$...
|
169
|
+
add_token(:func, func_name, nil, nil)
|
170
|
+
# Livetext::TTY.puts "3 matched is #{matched.inspect}"
|
171
|
+
else
|
172
|
+
abort "#{__method__}: Can't happen"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def parse_functions
|
177
|
+
# Assume variables already expanded?
|
178
|
+
@buffer = ""
|
179
|
+
loop do
|
180
|
+
break if remainder.empty? # end of string
|
181
|
+
if self.peek(2) == "$$" # Func?
|
182
|
+
grab_funcall
|
183
|
+
else # Junk
|
184
|
+
add_token(:str, grab_str)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
@tokenlist
|
188
|
+
end
|
63
189
|
|
190
|
+
def expand_function_calls
|
191
|
+
# Assume variables already resolved?
|
192
|
+
tokens = self.parse_functions
|
193
|
+
self.evaluate
|
194
|
+
end
|
195
|
+
|
64
196
|
def self.parse_formatting(str)
|
65
197
|
fmt = self.new(str)
|
66
198
|
loop do
|
@@ -82,22 +214,6 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
82
214
|
fmt.tokenlist
|
83
215
|
end
|
84
216
|
|
85
|
-
def self.parse_variables(str)
|
86
|
-
return nil if str.nil?
|
87
|
-
x = self.new(str.chomp)
|
88
|
-
char = x.peek
|
89
|
-
loop do
|
90
|
-
char = x.grab
|
91
|
-
break if char == LF || char == nil
|
92
|
-
x.escaped if char == Escape
|
93
|
-
x.dollar if char == "$" # Could be $$
|
94
|
-
x.add char
|
95
|
-
end
|
96
|
-
x.add_token(:str)
|
97
|
-
result = x.evaluate
|
98
|
-
result
|
99
|
-
end
|
100
|
-
|
101
217
|
def embed(sym, str)
|
102
218
|
pre, post = SimpleFormats[sym]
|
103
219
|
pre + str + post
|
@@ -105,15 +221,6 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
105
221
|
|
106
222
|
#########
|
107
223
|
|
108
|
-
def handle_simple_formatting(ch)
|
109
|
-
# api.tty "ch = #{ch.inspect}"
|
110
|
-
marker ch
|
111
|
-
add ch
|
112
|
-
# api.tty "token = #{@token.inspect} #{@tokenlist.inspect}"
|
113
|
-
c2 = grab
|
114
|
-
# api.tty "c2 = #{c2.inspect}"
|
115
|
-
end
|
116
|
-
|
117
224
|
def grab_string
|
118
225
|
weird = ["$", nil] # [Escape, "$", nil]
|
119
226
|
ch = grab
|
@@ -125,7 +232,7 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
125
232
|
break if eos? # ch = grab # advance pointer # api.tty "gs3 ch = #{ch.inspect}"
|
126
233
|
add grab
|
127
234
|
end # ch = grab # advance pointer # api.tty "-- gs4 ch = #{ch.inspect}"; sleep 0.01
|
128
|
-
add_token :str
|
235
|
+
add_token :str, @token
|
129
236
|
end
|
130
237
|
|
131
238
|
def grab_token(ch)
|
@@ -136,7 +243,7 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
136
243
|
when LF; finish = true # do nothing - break if eos?
|
137
244
|
when Escape; ch = self.escaped; add ch
|
138
245
|
when "$"; dollar
|
139
|
-
when *FMTS;
|
246
|
+
when *FMTS; marker(ch)
|
140
247
|
else grab_string
|
141
248
|
end
|
142
249
|
# api.tty "#{__method__}: AFTER CASE: api.data = #{api.data.inspect}"
|
@@ -255,9 +362,9 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
255
362
|
@token << str unless str.nil?
|
256
363
|
end
|
257
364
|
|
258
|
-
def add_token(kind, token
|
365
|
+
def add_token(kind, *token)
|
259
366
|
return if token.nil?
|
260
|
-
@tokenlist << [kind, token] unless token.empty?
|
367
|
+
@tokenlist << [kind, token].flatten unless token.empty?
|
261
368
|
@token = Null.dup
|
262
369
|
end
|
263
370
|
|
@@ -438,4 +545,31 @@ api.tty "-- result: #{result.inspect}" if $testme
|
|
438
545
|
@out << val unless val == "\n" # BUG
|
439
546
|
end
|
440
547
|
|
548
|
+
def expand_variables
|
549
|
+
rx = @rx_var
|
550
|
+
buffer = ""
|
551
|
+
loop do |i|
|
552
|
+
case # Var or Func or false alarm
|
553
|
+
when remainder.empty? # end of string
|
554
|
+
break
|
555
|
+
when self.peek(2) == "$$" # Func?
|
556
|
+
buffer << self.grab(2)
|
557
|
+
when self.peek == "$" # Var?
|
558
|
+
vname = rx.match(remainder)
|
559
|
+
puts "----"
|
560
|
+
p @line
|
561
|
+
p rx.match(@line)
|
562
|
+
p vname
|
563
|
+
puts "----"
|
564
|
+
# value = @live.vars[vname[1..-1]]
|
565
|
+
# @line.sub!(vname["result"], value)
|
566
|
+
add_token(:var, vname[1..-1])
|
567
|
+
grab(vname.length)
|
568
|
+
else # other
|
569
|
+
buffer << self.grab
|
570
|
+
end
|
571
|
+
end
|
572
|
+
buffer
|
573
|
+
end
|
574
|
+
|
441
575
|
end
|
@@ -11,10 +11,12 @@ class StringParser
|
|
11
11
|
@i = 0
|
12
12
|
end
|
13
13
|
|
14
|
-
def grab
|
14
|
+
def grab(n = 1)
|
15
|
+
raise "n <= 0 for #grab" if n <= 0
|
15
16
|
return nil if @eos
|
16
|
-
|
17
|
-
@i
|
17
|
+
i2 = @i + n - 1
|
18
|
+
char = @line[@i..i2]
|
19
|
+
@i += n
|
18
20
|
check_eos
|
19
21
|
char
|
20
22
|
end
|
@@ -25,9 +27,14 @@ class StringParser
|
|
25
27
|
end
|
26
28
|
|
27
29
|
def lookahead
|
30
|
+
# Get rid of this?
|
28
31
|
@line[@i + 1]
|
29
32
|
end
|
30
33
|
|
34
|
+
def remainder
|
35
|
+
@line[@i..-1]
|
36
|
+
end
|
37
|
+
|
31
38
|
def prev
|
32
39
|
return nil if @i <= 0
|
33
40
|
@line[@i-1]
|
@@ -37,9 +44,11 @@ class StringParser
|
|
37
44
|
@eos
|
38
45
|
end
|
39
46
|
|
40
|
-
def peek
|
47
|
+
def peek(n = 1)
|
48
|
+
raise "n <= 0 for #grab" if n <= 0
|
41
49
|
return nil if @eos
|
42
|
-
@
|
50
|
+
i2 = @i + n - 1
|
51
|
+
@line[@i..i2]
|
43
52
|
end
|
44
53
|
|
45
54
|
def skip_spaces
|
data/lib/livetext/skeleton.rb
CHANGED
data/lib/livetext/standard.rb
CHANGED
@@ -63,7 +63,8 @@ module Livetext::Standard
|
|
63
63
|
|
64
64
|
def func(args = nil, body = nil)
|
65
65
|
funcname = api.args[0]
|
66
|
-
check_disallowed(funcname)
|
66
|
+
# check_disallowed(funcname) # should any be invalid?
|
67
|
+
funcname = funcname.gsub(/\./, "__")
|
67
68
|
func_def = <<~EOS
|
68
69
|
def #{funcname}(param)
|
69
70
|
#{api.body.to_a.join("\n")}
|
@@ -207,7 +208,6 @@ module Livetext::Standard
|
|
207
208
|
indent = @parent.indentation.last
|
208
209
|
indented = " " * indent
|
209
210
|
api.setvar(var, rhs.chomp)
|
210
|
-
# @parent.setvar(var, rhs.chomp)
|
211
211
|
api.optional_blank_line
|
212
212
|
end
|
213
213
|
|
data/lib/livetext/userapi.rb
CHANGED
data/lib/livetext/version.rb
CHANGED
data/lib/livetext.rb
CHANGED
@@ -9,7 +9,6 @@ require_relative 'livetext/errors'
|
|
9
9
|
require_relative 'livetext/standard'
|
10
10
|
require_relative 'livetext/functions'
|
11
11
|
require_relative 'livetext/userapi'
|
12
|
-
# require_relative 'livetext/formatline'
|
13
12
|
require_relative 'livetext/lineparser'
|
14
13
|
require_relative 'livetext/processor'
|
15
14
|
require_relative 'livetext/helpers'
|
@@ -1,13 +1,13 @@
|
|
1
|
-
Here are examples of <b
|
2
|
-
and <i
|
3
|
-
and <font size=+1><tt
|
4
|
-
as well as <b>
|
5
|
-
of <i
|
6
|
-
and <font size=+1><tt
|
1
|
+
Here are examples of <b></b>
|
2
|
+
and <i></i>
|
3
|
+
and <font size=+1><tt></tt></font>
|
4
|
+
as well as <b></b> examples
|
5
|
+
of <i></i>
|
6
|
+
and <font size=+1><tt></tt></font>.
|
7
7
|
<p>
|
8
8
|
|
9
9
|
Here are some random punctuation marks:
|
10
|
-
; # .
|
10
|
+
; # . : @ % ^ & $
|
11
11
|
<p>
|
12
12
|
|
13
|
-
No need to escape these:
|
13
|
+
No need to escape these:
|
@@ -1,14 +1,14 @@
|
|
1
1
|
ACTUAL | EXPECTED
|
2
|
-
Here are examples of <b
|
3
|
-
and <i
|
4
|
-
and <font size=+1><tt
|
5
|
-
as well as <b>
|
6
|
-
of <i
|
7
|
-
and <font size=+1><tt
|
2
|
+
Here are examples of <b></b> | Here are examples of <b>boldface</b>
|
3
|
+
and <i></i> | and <i>italics</i>
|
4
|
+
and <font size=+1><tt></tt></font> | and <font size=+1><tt>code</tt></font>
|
5
|
+
as well as <b></b> examples | as well as <b>more complex</b> examples
|
6
|
+
of <i></i> | of <i>italicized text</i>
|
7
|
+
and <font size=+1><tt></tt></font>. | and <font size=+1><tt>code font</tt></font>.
|
8
8
|
<p> <p>
|
9
9
|
|
10
10
|
Here are some random punctuation marks: Here are some random punctuation marks:
|
11
|
-
; # .
|
11
|
+
; # . : @ % ^ & $ | ; # . * _ ` : @ % ^ & $
|
12
12
|
<p> <p>
|
13
13
|
|
14
|
-
No need to escape these:
|
14
|
+
No need to escape these: | No need to escape these: * _ `
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:123:in `grab_func_param': wrong number of arguments (given 0, expected 1) (ArgumentError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/funcall.rb:55:in `grab_func_with_param'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/funcall.rb:63:in `double_dollar'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:387:in `dollar'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:235:in `grab_token'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:247:in `block in tokenize'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:245:in `loop'
|
8
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:245:in `tokenize'
|
9
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:45:in `parse!'
|
10
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/userapi.rb:122:in `format'
|
11
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/userapi.rb:129:in `passthru'
|
12
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:104:in `process_line'
|
13
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:86:in `block in process_file'
|
14
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:83:in `loop'
|
15
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:83:in `process_file'
|
16
|
+
from ../../../bin/livetext:89:in `block in parse_command_line'
|
17
|
+
from ../../../bin/livetext:75:in `loop'
|
18
|
+
from ../../../bin/livetext:75:in `parse_command_line'
|
19
|
+
from ../../../bin/livetext:106:in `<main>'
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
ACTUAL | EXPECTED
|
2
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparse <
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
8
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
9
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
10
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
11
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
12
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
13
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
14
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
15
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
16
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livet <
|
17
|
+
from ../../../bin/livetext:89:in `block in parse_co <
|
18
|
+
from ../../../bin/livetext:75:in `loop' <
|
19
|
+
from ../../../bin/livetext:75:in `parse_command_lin <
|
20
|
+
from ../../../bin/livetext:106:in `<main>' <
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
ACTUAL | EXPECTED
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:123:in `grab_func_param': wrong number of arguments (given 0, expected 1) (ArgumentError)
|
2
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/funcall.rb:55:in `grab_func_with_param'
|
3
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/funcall.rb:63:in `double_dollar'
|
4
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:387:in `dollar'
|
5
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:235:in `grab_token'
|
6
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:247:in `block in tokenize'
|
7
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:245:in `loop'
|
8
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:245:in `tokenize'
|
9
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/lineparser.rb:45:in `parse!'
|
10
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/userapi.rb:122:in `format'
|
11
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/userapi.rb:129:in `passthru'
|
12
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:104:in `process_line'
|
13
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:86:in `block in process_file'
|
14
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:83:in `loop'
|
15
|
+
from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext/helpers.rb:83:in `process_file'
|
16
|
+
from ../../../bin/livetext:89:in `block in parse_command_line'
|
17
|
+
from ../../../bin/livetext:75:in `loop'
|
18
|
+
from ../../../bin/livetext:75:in `parse_command_line'
|
19
|
+
from ../../../bin/livetext:106:in `<main>'
|
@@ -1,37 +0,0 @@
|
|
1
|
-
Testing some more functions here...
|
2
|
-
<p>
|
3
|
-
|
4
|
-
Here I am calling a function with
|
5
|
-
a colon parameter...
|
6
|
-
<p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
|
10
|
-
Next let's <b>do</b>*something with our parameter:
|
11
|
-
<p>
|
12
|
-
|
13
|
-
I'll call these variants...
|
14
|
-
<p>
|
15
|
-
|
16
|
-
"Motel" spelled backwards is letom :)
|
17
|
-
<p>
|
18
|
-
|
19
|
-
"lamina" reversed is animal
|
20
|
-
<p>
|
21
|
-
|
22
|
-
I can also use the erutaef tekcarb here.
|
23
|
-
<p>
|
24
|
-
|
25
|
-
If I don't use a parameter for [Error evaluating $$reverse()] - it gives
|
26
|
-
me an error. (Bug or feature??)
|
27
|
-
<p>
|
28
|
-
|
29
|
-
What if a function doesn't use parameters at all, but
|
30
|
-
we pass them? Hmm...
|
31
|
-
<p>
|
32
|
-
|
33
|
-
Now we succeed and succeed some more
|
34
|
-
and finally we succeed in life.
|
35
|
-
<p>
|
36
|
-
|
37
|
-
But can we succeed, when our beds are burning?
|