xrpn 1.1.3 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/xrpn +10 -10
- data/lib/xrpn.rb +2 -0
- data/xrpn.gemspec +2 -3
- metadata +3 -302
- data/cmd/abs +0 -7
- data/cmd/acos +0 -10
- data/cmd/adate +0 -12
- data/cmd/adateiso +0 -13
- data/cmd/add +0 -9
- data/cmd/adv +0 -7
- data/cmd/agsub +0 -8
- data/cmd/aleng +0 -8
- data/cmd/almcat +0 -7
- data/cmd/almnow +0 -7
- data/cmd/anum +0 -10
- data/cmd/aoff +0 -7
- data/cmd/aon +0 -7
- data/cmd/appchr +0 -13
- data/cmd/apprec +0 -13
- data/cmd/arcl +0 -22
- data/cmd/arcli +0 -7
- data/cmd/arclrec +0 -30
- data/cmd/arot +0 -13
- data/cmd/ashf +0 -7
- data/cmd/asin +0 -10
- data/cmd/asroom +0 -7
- data/cmd/asto +0 -21
- data/cmd/asub +0 -8
- data/cmd/atan +0 -10
- data/cmd/atime +0 -26
- data/cmd/atime24 +0 -21
- data/cmd/atox +0 -9
- data/cmd/aview +0 -7
- data/cmd/aviewc +0 -7
- data/cmd/beep +0 -7
- data/cmd/bindec +0 -8
- data/cmd/cat +0 -26
- data/cmd/cf +0 -7
- data/cmd/chs +0 -7
- data/cmd/cla +0 -7
- data/cmd/clalma +0 -7
- data/cmd/clalmx +0 -7
- data/cmd/cld +0 -6
- data/cmd/clear +0 -7
- data/cmd/clfl +0 -13
- data/cmd/clk12 +0 -7
- data/cmd/clk24 +0 -7
- data/cmd/clkeys +0 -7
- data/cmd/clock +0 -7
- data/cmd/clp +0 -8
- data/cmd/clralms +0 -7
- data/cmd/clrg +0 -7
- data/cmd/clrgx +0 -12
- data/cmd/cls +0 -12
- data/cmd/clst +0 -10
- data/cmd/clx +0 -8
- data/cmd/cmdadd +0 -7
- data/cmd/cmddel +0 -7
- data/cmd/correct +0 -7
- data/cmd/cos +0 -10
- data/cmd/crflas +0 -9
- data/cmd/crfld +0 -9
- data/cmd/cube +0 -8
- data/cmd/d_r +0 -8
- data/cmd/date +0 -8
- data/cmd/dateplus +0 -12
- data/cmd/ddate +0 -11
- data/cmd/dec +0 -7
- data/cmd/decbin +0 -8
- data/cmd/dechex +0 -8
- data/cmd/decoct +0 -8
- data/cmd/deg +0 -7
- data/cmd/degq +0 -7
- data/cmd/delchr +0 -14
- data/cmd/delrec +0 -12
- data/cmd/divide +0 -9
- data/cmd/dmy +0 -7
- data/cmd/dot +0 -7
- data/cmd/dow +0 -9
- data/cmd/drop +0 -7
- data/cmd/dropy +0 -7
- data/cmd/dse +0 -40
- data/cmd/ed +0 -7
- data/cmd/emdir +0 -7
- data/cmd/emdirx +0 -14
- data/cmd/emroom +0 -7
- data/cmd/end +0 -9
- data/cmd/eng +0 -9
- data/cmd/enter +0 -8
- data/cmd/exp +0 -9
- data/cmd/expx1 +0 -9
- data/cmd/fact +0 -9
- data/cmd/fc +0 -7
- data/cmd/fcc +0 -8
- data/cmd/fcs +0 -8
- data/cmd/fix +0 -9
- data/cmd/fixq +0 -7
- data/cmd/flsize +0 -7
- data/cmd/frc +0 -8
- data/cmd/fs +0 -7
- data/cmd/fsc +0 -8
- data/cmd/fss +0 -8
- data/cmd/geir +0 -11
- data/cmd/getas +0 -7
- data/cmd/getfile +0 -12
- data/cmd/getfilea +0 -11
- data/cmd/getkey +0 -9
- data/cmd/getkeyx +0 -10
- data/cmd/getp +0 -13
- data/cmd/getr +0 -13
- data/cmd/getrec +0 -8
- data/cmd/getrx +0 -17
- data/cmd/getsub +0 -7
- data/cmd/getweb +0 -12
- data/cmd/getx +0 -12
- data/cmd/grad +0 -7
- data/cmd/gsb +0 -7
- data/cmd/gto +0 -23
- data/cmd/help +0 -14
- data/cmd/hexdec +0 -8
- data/cmd/hms +0 -12
- data/cmd/hmsminus +0 -14
- data/cmd/hmsplus +0 -13
- data/cmd/hr +0 -11
- data/cmd/inschr +0 -14
- data/cmd/insrec +0 -12
- data/cmd/int +0 -8
- data/cmd/invf +0 -7
- data/cmd/isg +0 -40
- data/cmd/lastx +0 -8
- data/cmd/lbl +0 -6
- data/cmd/lift +0 -8
- data/cmd/ln +0 -8
- data/cmd/ln1x +0 -8
- data/cmd/log +0 -8
- data/cmd/mdy +0 -7
- data/cmd/mean +0 -11
- data/cmd/mod +0 -13
- data/cmd/multiply +0 -9
- data/cmd/oct +0 -7
- data/cmd/octdec +0 -8
- data/cmd/off +0 -8
- data/cmd/on +0 -7
- data/cmd/p_r +0 -13
- data/cmd/pack +0 -7
- data/cmd/page +0 -13
- data/cmd/pagedel +0 -8
- data/cmd/pageq +0 -7
- data/cmd/pageswap +0 -8
- data/cmd/pasn +0 -7
- data/cmd/pcat +0 -14
- data/cmd/pclps +0 -12
- data/cmd/percent +0 -9
- data/cmd/percentch +0 -9
- data/cmd/pi +0 -8
- data/cmd/posa +0 -23
- data/cmd/posfl +0 -26
- data/cmd/pow +0 -9
- data/cmd/pprg +0 -27
- data/cmd/pprgx +0 -33
- data/cmd/pra +0 -7
- data/cmd/prflags +0 -8
- data/cmd/prompt +0 -8
- data/cmd/prp +0 -7
- data/cmd/prregs +0 -8
- data/cmd/prstk +0 -10
- data/cmd/prx +0 -7
- data/cmd/prxm +0 -21
- data/cmd/pse +0 -7
- data/cmd/psize +0 -7
- data/cmd/purfl +0 -14
- data/cmd/r_d +0 -8
- data/cmd/r_p +0 -18
- data/cmd/rad +0 -7
- data/cmd/rand +0 -10
- data/cmd/rcl +0 -23
- data/cmd/rclaf +0 -7
- data/cmd/rclflag +0 -16
- data/cmd/rclpt +0 -8
- data/cmd/rclpta +0 -16
- data/cmd/rclsw +0 -7
- data/cmd/rdn +0 -7
- data/cmd/recip +0 -8
- data/cmd/regmove +0 -18
- data/cmd/regswap +0 -19
- data/cmd/reload +0 -7
- data/cmd/reszfl +0 -7
- data/cmd/rnd +0 -8
- data/cmd/root +0 -9
- data/cmd/rtn +0 -12
- data/cmd/rubycmd +0 -7
- data/cmd/runsw +0 -7
- data/cmd/rup +0 -7
- data/cmd/saveas +0 -7
- data/cmd/savep +0 -7
- data/cmd/saver +0 -24
- data/cmd/saverx +0 -31
- data/cmd/savex +0 -10
- data/cmd/savexm +0 -7
- data/cmd/sci +0 -9
- data/cmd/sdev +0 -11
- data/cmd/seekpt +0 -10
- data/cmd/seekpta +0 -7
- data/cmd/sep +0 -7
- data/cmd/setaf +0 -7
- data/cmd/setsw +0 -7
- data/cmd/sf +0 -7
- data/cmd/shellcmd +0 -7
- data/cmd/sign +0 -19
- data/cmd/sin +0 -10
- data/cmd/size +0 -7
- data/cmd/sizeq +0 -7
- data/cmd/sminus +0 -20
- data/cmd/splus +0 -20
- data/cmd/sqr +0 -8
- data/cmd/sqrt +0 -8
- data/cmd/sreg +0 -7
- data/cmd/sregq +0 -7
- data/cmd/stdivide +0 -22
- data/cmd/stmultiply +0 -22
- data/cmd/sto +0 -21
- data/cmd/stoflag +0 -13
- data/cmd/stop +0 -7
- data/cmd/stopsw +0 -7
- data/cmd/stplus +0 -22
- data/cmd/stsubtract +0 -22
- data/cmd/subtract +0 -9
- data/cmd/sw +0 -7
- data/cmd/swap +0 -7
- data/cmd/swpt +0 -7
- data/cmd/tan +0 -10
- data/cmd/tenx +0 -8
- data/cmd/time +0 -8
- data/cmd/tx +0 -7
- data/cmd/version +0 -7
- data/cmd/view +0 -7
- data/cmd/writefile +0 -12
- data/cmd/xeq +0 -21
- data/cmd/xeq0 +0 -7
- data/cmd/xeqnn +0 -9
- data/cmd/xeqy +0 -7
- data/cmd/xf +0 -20
- data/cmd/xgt0 +0 -7
- data/cmd/xgteq0 +0 -7
- data/cmd/xgteqnn +0 -9
- data/cmd/xgteqy +0 -7
- data/cmd/xgtnn +0 -9
- data/cmd/xgty +0 -7
- data/cmd/xlt0 +0 -7
- data/cmd/xlteq0 +0 -7
- data/cmd/xlteqnn +0 -9
- data/cmd/xlteqy +0 -7
- data/cmd/xltnn +0 -9
- data/cmd/xlty +0 -7
- data/cmd/xmexistq +0 -15
- data/cmd/xmfileq +0 -7
- data/cmd/xneq0 +0 -7
- data/cmd/xneqnn +0 -9
- data/cmd/xneqy +0 -7
- data/cmd/xnn +0 -21
- data/cmd/xtoa +0 -7
- data/cmd/xy +0 -7
- data/cmd/xyzalm +0 -7
- data/lib/_xrpn_version.rb +0 -5
- data/lib/bei.rb +0 -18
- data/lib/check.rb +0 -26
- data/lib/conditional.rb +0 -10
- data/lib/convert_base.rb +0 -8
- data/lib/debug_mode.rb +0 -124
- data/lib/dtparse.rb +0 -10
- data/lib/error.rb +0 -10
- data/lib/fact.rb +0 -7
- data/lib/getpt.rb +0 -7
- data/lib/help.rb +0 -12
- data/lib/hp_41.rb +0 -83
- data/lib/ind.rb +0 -21
- data/lib/load_xm.rb +0 -28
- data/lib/locate_prg.rb +0 -32
- data/lib/numeric.rb +0 -62
- data/lib/numformat.rb +0 -12
- data/lib/optparse.rb +0 -23
- data/lib/read_cmd.rb +0 -12
- data/lib/read_state.rb +0 -6
- data/lib/save_state.rb +0 -18
- data/lib/save_xm.rb +0 -5
- data/lib/setpt.rb +0 -5
- data/lib/string.rb +0 -28
- data/lib/theme_dark.rb +0 -10
- data/lib/theme_light.rb +0 -10
- data/lib/xrpn_class.rb +0 -34
data/cmd/xgteqnn
DELETED
data/cmd/xgteqy
DELETED
data/cmd/xgtnn
DELETED
data/cmd/xgty
DELETED
data/cmd/xlt0
DELETED
data/cmd/xlteq0
DELETED
data/cmd/xlteqnn
DELETED
data/cmd/xlteqy
DELETED
data/cmd/xltnn
DELETED
data/cmd/xlty
DELETED
data/cmd/xmexistq
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
class XRPN
|
2
|
-
def xmexist?
|
3
|
-
f = Dir.home + "/.xrpn/data/" + @a
|
4
|
-
if File.exist?(f + ".da")
|
5
|
-
return "YES (DA)"
|
6
|
-
elsif File.exist?(f + ".as")
|
7
|
-
return "YES (AS)"
|
8
|
-
elsif File.exist?(f + ".pr")
|
9
|
-
return "YES (PR)"
|
10
|
-
else return "NO"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# vim:ft=ruby:
|
data/cmd/xmfileq
DELETED
data/cmd/xneq0
DELETED
data/cmd/xneqnn
DELETED
data/cmd/xneqy
DELETED
data/cmd/xnn
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
class XRPN
|
2
|
-
def xnn (r) # X<> r
|
3
|
-
case r.downcase
|
4
|
-
when "x"
|
5
|
-
@l = @x
|
6
|
-
when "y"
|
7
|
-
@x, @y = @y, @x
|
8
|
-
when "z"
|
9
|
-
@x, @z = @z, @x
|
10
|
-
when "t"
|
11
|
-
@x, @t = @t, @x
|
12
|
-
when "l"
|
13
|
-
@x, @l = @l, @x
|
14
|
-
else
|
15
|
-
@reg[r] = 0 if @reg[r] == nil
|
16
|
-
@x, @reg[r] = @reg[r], @x
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
# vim:ft=ruby:
|
data/cmd/xtoa
DELETED
data/cmd/xy
DELETED
data/cmd/xyzalm
DELETED
data/lib/_xrpn_version.rb
DELETED
data/lib/bei.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
def x2bei (x)
|
2
|
-
b = x.to_i
|
3
|
-
e = (1000 * (x - b)).to_i
|
4
|
-
i = (((1000 * x) - (1000 * x).to_i) * 100).round()
|
5
|
-
i = 1 if i == 0
|
6
|
-
return b, e, i
|
7
|
-
end
|
8
|
-
|
9
|
-
def bei2x (b, e, i)
|
10
|
-
b = b.to_i
|
11
|
-
e = e.to_i
|
12
|
-
i = 1 if i == 0
|
13
|
-
i = i.to_i
|
14
|
-
x = b.to_f + (e.to_f / 1000) + (i.to_f / 100000)
|
15
|
-
return x
|
16
|
-
end
|
17
|
-
|
18
|
-
# vim:ft=ruby:
|
data/lib/check.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
def check(file)
|
2
|
-
load Dir.home+"/.xrpn/lib/read_cmd"
|
3
|
-
read_cmd
|
4
|
-
errors = 0
|
5
|
-
if File.exist?(file)
|
6
|
-
cfile = File.read(file).split("\n")
|
7
|
-
else
|
8
|
-
puts "No such file: #{file}"
|
9
|
-
exit
|
10
|
-
end
|
11
|
-
cfile41 = hp_41(cfile.dup)
|
12
|
-
cfile41.each_with_index do |line, i|
|
13
|
-
if line.match(/^-*[\d\.,e]+$/)
|
14
|
-
elsif line.match(/^>?".*"/)
|
15
|
-
else
|
16
|
-
l1 = line.split[0]
|
17
|
-
if not $cmd.include?(l1.downcase)
|
18
|
-
puts "Line #{i + 1}: No such command: #{cfile[i]}"
|
19
|
-
errors += 1
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
puts "Errors = #{errors}"
|
24
|
-
end
|
25
|
-
|
26
|
-
# vim:ft=ruby:
|
data/lib/conditional.rb
DELETED
data/lib/convert_base.rb
DELETED
data/lib/debug_mode.rb
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
def debug_mode
|
2
|
-
prompt = TTY::Prompt.new
|
3
|
-
loop do
|
4
|
-
if $prompt
|
5
|
-
@line = prompt.ask(":")
|
6
|
-
break
|
7
|
-
else
|
8
|
-
puts "─" * 30
|
9
|
-
@p.prstk
|
10
|
-
print "> "
|
11
|
-
@ln = STDIN.getch
|
12
|
-
while IO.select([STDIN], [], [], 0) != nil # Flush STDIN (remove control chars)
|
13
|
-
STDIN.getch
|
14
|
-
end
|
15
|
-
if ["+", "-", "*", "/", "%"].include?(@ln)
|
16
|
-
print "\e[32m" + @ln + "\e[0m\n"
|
17
|
-
@ln = [@ln]
|
18
|
-
@line = hp_41(@ln)[0]
|
19
|
-
break
|
20
|
-
elsif @ln == "\r" # A simple ENTER
|
21
|
-
@line = "lift"
|
22
|
-
puts "\n"
|
23
|
-
break
|
24
|
-
end
|
25
|
-
print "\e[1G\e[K" # Clears from the beginning of line (removes getch prompt)
|
26
|
-
@line = prompt.ask(">", value: @ln)
|
27
|
-
unless @line == nil or @line.length == 1
|
28
|
-
@line = [@line]
|
29
|
-
@line = hp_41(@line)[0]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
case @line
|
33
|
-
when "q" # Quit
|
34
|
-
puts "\n"
|
35
|
-
exit
|
36
|
-
when "Q" # Save and quit
|
37
|
-
save_state()
|
38
|
-
puts "\n"
|
39
|
-
exit
|
40
|
-
when /> .*/
|
41
|
-
state = @line.sub(/> /, '')
|
42
|
-
save_state(state)
|
43
|
-
when /< .*/
|
44
|
-
state = @line.sub(/< /, '')
|
45
|
-
read_state(state)
|
46
|
-
when "c"
|
47
|
-
system("clear")
|
48
|
-
when "C"
|
49
|
-
@p.x = 0.0
|
50
|
-
@p.y = 0.0
|
51
|
-
@p.z = 0.0
|
52
|
-
@p.t = 0.0
|
53
|
-
@p.l = 0.0
|
54
|
-
@p.a = ""
|
55
|
-
@p.deg = "deg"
|
56
|
-
@p.i = 4
|
57
|
-
@p.s = 6
|
58
|
-
@p.srg = 11
|
59
|
-
@p.reg = {}
|
60
|
-
@p.flg = {}
|
61
|
-
system("clear")
|
62
|
-
when "R" # Reload all commands from the cmd directory
|
63
|
-
read_cmd
|
64
|
-
puts "Commands reloaded."
|
65
|
-
when "l" # Show current line
|
66
|
-
@line = @p.prg[@p.pg][@p.pc]
|
67
|
-
puts "Line #{@p.pc + 1}: \"#{@line}\"" # Line 1 is @p.prg[@p.pg][0]
|
68
|
-
when "n" # Show next line
|
69
|
-
if @p.pc + 1 > @p.prg[@p.pg].length
|
70
|
-
puts "End of program"
|
71
|
-
else
|
72
|
-
@line = @p.prg[@p.pg][@p.pc + 1]
|
73
|
-
puts "Line #{@p.pc + 2}: \"#{@line}\"" # Line 1 is @p.prg[@p.pg][0]
|
74
|
-
end
|
75
|
-
when "p" # Show previous line
|
76
|
-
if @p.pc - 1 < 0
|
77
|
-
puts "Beginning of program"
|
78
|
-
else
|
79
|
-
@line = @p.prg[@p.pg][@p.pc - 1]
|
80
|
-
puts "Line #{@p.pc}: \"#{@line}\"" # Line 1 is @p.prg[@p.pg][0]
|
81
|
-
end
|
82
|
-
when "S" # Go to next line without executing it
|
83
|
-
@p.pc += 1
|
84
|
-
if @p.pc > @p.prg[@p.pg].length
|
85
|
-
puts "End of program"
|
86
|
-
else
|
87
|
-
@line = @p.prg[@p.pg][@p.pc + 1]
|
88
|
-
puts "Line #{@p.pc + 2}: \"#{@line}\"" # Line 1 is @p.prg[@p.pg][0]
|
89
|
-
end
|
90
|
-
when "s" # Single-step the next program line
|
91
|
-
@p.pc += 1
|
92
|
-
if @p.pc == @p.prg[@p.pg].length
|
93
|
-
@line = "END"
|
94
|
-
break
|
95
|
-
end
|
96
|
-
@line = @p.prg[@p.pg][@p.pc]
|
97
|
-
puts "Line #{@p.pc + 1}: #{@line}" # Line 1 is @p.prg[@p.pg][0]
|
98
|
-
$sst = true
|
99
|
-
break
|
100
|
-
when "b" # Back-step one line
|
101
|
-
@p.pc -= 1 unless @p.pc == 0
|
102
|
-
when /^\+\+ /
|
103
|
-
@p.prg[@p.pg].insert(@p.pc + 1, @line.sub(/^\+\+ /, ''))
|
104
|
-
when "--"
|
105
|
-
@p.prg[@p.pg].delete_at(@p.pc)
|
106
|
-
when nil # A simple ENTER
|
107
|
-
@line = "lift"
|
108
|
-
break
|
109
|
-
when "r" # End debug mode
|
110
|
-
@p.pc += 1
|
111
|
-
@line = @p.prg[@p.pg][@p.pc]
|
112
|
-
@line = "end" if @line == nil
|
113
|
-
$debug = false
|
114
|
-
$sst = false
|
115
|
-
break unless @p.flg["44"]
|
116
|
-
else
|
117
|
-
break unless @p.flg["44"]
|
118
|
-
end
|
119
|
-
end
|
120
|
-
$prompt = false
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
# vim:ft=ruby:
|
data/lib/dtparse.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
def dtparse(date)
|
2
|
-
@flg["31"] ? d = date.to_i : m = date.to_i
|
3
|
-
@flg["31"] ? m = ((date - date.to_i) * 100).to_i : d = ((date - date.to_i) * 100).to_i
|
4
|
-
y = (((date * 100) - (date * 100).to_i) * 10000).to_i
|
5
|
-
dt = "#{y.to_s}-#{m.to_s}-#{d.to_s}"
|
6
|
-
return Date.parse(dt)
|
7
|
-
end
|
8
|
-
|
9
|
-
|
10
|
-
# vim:ft=ruby:
|
data/lib/error.rb
DELETED
data/lib/fact.rb
DELETED
data/lib/getpt.rb
DELETED
data/lib/help.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
def help
|
2
|
-
puts <<HELPTEXT
|
3
|
-
XRPN is a stack-based programming language. It uses Reverse Polish Notation for calculations.
|
4
|
-
The language is a superset of FOCAL, implementing the full set of HP-41CX calculator commands.
|
5
|
-
XRPN is on-the-fly extensible. Language functions can be upgraded or implemented while programs are running.
|
6
|
-
It runs programs in text files or manually in debug mode (if no text file is supplied or when a program stops)
|
7
|
-
XRPN implements indirect adressing, self-modification and features well beyond the FOCAL language.
|
8
|
-
For detailed information, visit the GitHub page: https://github.com/isene/xrpn
|
9
|
-
HELPTEXT
|
10
|
-
end
|
11
|
-
|
12
|
-
# vim:ft=ruby:
|
data/lib/hp_41.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
def hp_41 (a)
|
2
|
-
a.map!{|x| x.sub( /^\s+/, "" )} # Remove spaces at start of line
|
3
|
-
a.map!{|x| x.sub( /^\d\d+[^0-9.]/, "" )} # Remove line numbers from program
|
4
|
-
a.map!{|x| x.sub( /\s+$/, "" )} # Remove trailing spaces
|
5
|
-
a.map!{|x| x.sub( /\s\s+/, "" )} # Remove multiple spaces
|
6
|
-
a.map!{|x| x.sub( /([a-zA-Z ]*)/, &:downcase)} # Downcase everything (use the /i below here)
|
7
|
-
a.map!{|x| x.sub( /ENTER\^/i, "enter" )}
|
8
|
-
a.map!{|x| x.sub( /R\^/i, "rup" )}
|
9
|
-
a.map!{|x| x.sub( /X\^2/i, "sqr" )}
|
10
|
-
a.map!{|x| x.sub( /X\*\*2/i, "sqr" )}
|
11
|
-
a.map!{|x| x.sub( /^E(\d+)/i, '1e\1' )}
|
12
|
-
a.map!{|x| x.sub( /1\/X/i, "recip" )}
|
13
|
-
a.map!{|x| x.sub( /HMS\+/i, "hmsplus" )}
|
14
|
-
a.map!{|x| x.sub( /HMS-/i, "hmsminus" )}
|
15
|
-
a.map!{|x| x.sub( /DATE\+/i, "dateplus" )}
|
16
|
-
a.map!{|x| x.sub( /Σ\+/i, "splus" )}
|
17
|
-
a.map!{|x| x.sub( /Σ-/i, "sminus" )}
|
18
|
-
a.map!{|x| x.sub( /S\+/i, "splus" )}
|
19
|
-
a.map!{|x| x.sub( /S-/i, "sminus" )}
|
20
|
-
a.map!{|x| x.sub( /SIGMA\+/i, "splus" )}
|
21
|
-
a.map!{|x| x.sub( /SIGMA-/i, "sminus" )}
|
22
|
-
a.map!{|x| x.sub( /SIGMAREG/, "sreg" )}
|
23
|
-
a.map!{|x| x.sub( /CLSIGMA/, "cls" )}
|
24
|
-
a.map!{|x| x.sub( /STO?\+/i, "stplus" )}
|
25
|
-
a.map!{|x| x.sub( /STO?-/i, "stsubtract" )}
|
26
|
-
a.map!{|x| x.sub( /STO?\*/i, "stmultiply" )}
|
27
|
-
a.map!{|x| x.sub( /STO?\//i, "stdivide" )}
|
28
|
-
a.map!{|x| x.sub( /%CH/i, "perch" )}
|
29
|
-
a.map!{|x| x.sub( /Y\^X/i, "pow" )}
|
30
|
-
a.map!{|x| x.sub( /Y\*\*X/i, "pow" )}
|
31
|
-
a.map!{|x| x.sub( /LN1\+X/i, "ln1x" )}
|
32
|
-
a.map!{|x| x.sub( /E\^X-1/i, "expx1" )} # Must come before next
|
33
|
-
a.map!{|x| x.sub( /E\^X/i, "exp" )}
|
34
|
-
a.map!{|x| x.sub( /E\*\*X-1/i, "expx1" )} # Must come before next
|
35
|
-
a.map!{|x| x.sub( /E\*\*X/i, "exp" )}
|
36
|
-
a.map!{|x| x.sub( /10\^X/i, "tenx" )}
|
37
|
-
a.map!{|x| x.sub( /10\*\*X/i, "tenx" )}
|
38
|
-
a.map!{|x| x.sub( /P-R/i, "p_r" )}
|
39
|
-
a.map!{|x| x.sub( /P->R/i, "p_r" )}
|
40
|
-
a.map!{|x| x.sub( /R-P/i, "r_p" )}
|
41
|
-
a.map!{|x| x.sub( /R->P/i, "r_p" )}
|
42
|
-
a.map!{|x| x.sub( /D-R/i, "d_r" )}
|
43
|
-
a.map!{|x| x.sub( /D->R/i, "d_r" )}
|
44
|
-
a.map!{|x| x.sub( /R-D/i, "r_d" )}
|
45
|
-
a.map!{|x| x.sub( /R->D/i, "r_d" )}
|
46
|
-
a.map!{|x| x.sub( /X<>Y/i, "xy" )}
|
47
|
-
a.map!{|x| x.sub( /X<>F/i, "xf" )}
|
48
|
-
a.map!{|x| x.sub( /X<>/i, "xnn" )}
|
49
|
-
a.map!{|x| x.sub( /X<>NN/i, "xnn" )}
|
50
|
-
a.map!{|x| x.sub( /FC\?C/i, "fcc?" )}
|
51
|
-
a.map!{|x| x.sub( /FS\?C/i, "fsc?" )}
|
52
|
-
a.map!{|x| x.sub( /X=Y\?/i, "xeqy?" )}
|
53
|
-
a.map!{|x| x.sub( /X#Y\?/i, "xneqy?" )}
|
54
|
-
a.map!{|x| x.sub( /X!=Y\?/i, "xneqy?" )}
|
55
|
-
a.map!{|x| x.sub( /X<>Y\?/i, "xneqy?" )}
|
56
|
-
a.map!{|x| x.sub( /X<Y\?/i, "xlty?" )}
|
57
|
-
a.map!{|x| x.sub( /X<=Y\?/i, "xlteqy?" )}
|
58
|
-
a.map!{|x| x.sub( /X>Y\?/i, "xgty?" )}
|
59
|
-
a.map!{|x| x.sub( /X>=Y\?/i, "xgteqy?" )}
|
60
|
-
a.map!{|x| x.sub( /X=0\?/i, "xeq0?" )}
|
61
|
-
a.map!{|x| x.sub( /X#0\?/i, "xneq0?" )}
|
62
|
-
a.map!{|x| x.sub( /X!=0\?/i, "xneq0?" )}
|
63
|
-
a.map!{|x| x.sub( /X<>0\?/i, "xneq0?" )}
|
64
|
-
a.map!{|x| x.sub( /X<0\?/i, "xlt0?" )}
|
65
|
-
a.map!{|x| x.sub( /X<=0\?/i, "xlteq0?" )}
|
66
|
-
a.map!{|x| x.sub( /X>0\?/i, "xgt0?" )}
|
67
|
-
a.map!{|x| x.sub( /X>=0\?/i, "xgteq0?" )}
|
68
|
-
a.map!{|x| x.sub( /X=NN\?/i, "xeqnn?" )}
|
69
|
-
a.map!{|x| x.sub( /X#NN\?/i, "xneqnn?" )}
|
70
|
-
a.map!{|x| x.sub( /X!=NN\?/i, "xneqnn?" )}
|
71
|
-
a.map!{|x| x.sub( /X<>NN\?/i, "xneqnn?" )}
|
72
|
-
a.map!{|x| x.sub( /X<NN\?/i, "xltnn?" )}
|
73
|
-
a.map!{|x| x.sub( /X<=NN\?/i, "xlteqnn?" )}
|
74
|
-
a.map!{|x| x.sub( /X>NN\?/i, "xgtnn?" )}
|
75
|
-
a.map!{|x| x.sub( /X>=NN\?/i, "xgteqnn?" )}
|
76
|
-
a.map!{|x| x.sub( /T\+X/i, "tx" )}
|
77
|
-
a.map!{|x| x.sub( /GOTO/i, "gto" )}
|
78
|
-
a.delete("")
|
79
|
-
a.compact!
|
80
|
-
return a
|
81
|
-
end
|
82
|
-
|
83
|
-
# vim:ft=ruby:
|
data/lib/ind.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
def ind(l3)
|
2
|
-
case l3
|
3
|
-
when "x"
|
4
|
-
l2 = @p.x.to_i.to_s
|
5
|
-
when "y"
|
6
|
-
l2 = @p.y.to_i.to_s
|
7
|
-
when "z"
|
8
|
-
l2 = @p.z.to_i.to_s
|
9
|
-
when "t"
|
10
|
-
l2 = @p.t.to_i.to_s
|
11
|
-
when "l"
|
12
|
-
l2 = @p.l.to_i.to_s
|
13
|
-
else
|
14
|
-
l2 = @p.reg[l3].to_i.to_s
|
15
|
-
end
|
16
|
-
l2 = "%02d" % [l2] if l2 == l2.to_i.to_s
|
17
|
-
return l2
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
# vim:ft=ruby:
|
data/lib/load_xm.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
def load_xm(f, pt=nil) # Raw file name and pointer
|
2
|
-
f = Dir.home + "/.xrpn/data/" + f
|
3
|
-
fl = [f + ".da", f + ".as"]
|
4
|
-
hit = false
|
5
|
-
fl.each do |file|
|
6
|
-
if File.exist?(file)
|
7
|
-
@xmcont = JSON.parse(File.read(file))
|
8
|
-
@xmfile = file
|
9
|
-
@xmcont[0][0] = file
|
10
|
-
unless pt == nil
|
11
|
-
@xmcont[0][3] = pt
|
12
|
-
save_xm
|
13
|
-
end
|
14
|
-
@xmcont[0][3] = 0.0 if @xmcont[0][3] < 0.0
|
15
|
-
@xmcont[0][3] = @xmcont.length.to_f - 2 if @xmcont[0][3] > @xmcont.length + 2
|
16
|
-
@xmcont[0][1] = "DA" if file.match(/da$/)
|
17
|
-
@xmcont[0][1] = "AS" if file.match(/as$/)
|
18
|
-
hit = true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
if hit
|
22
|
-
puts "Loaded XM file: #{@a} (#{@xmcont[0][0]})"
|
23
|
-
else
|
24
|
-
puts "No such XM file: #{@a}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# vim:ft=ruby:
|
data/lib/locate_prg.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
def locate_prg (l)
|
2
|
-
lbl = "lbl #{l}"
|
3
|
-
page = nil
|
4
|
-
pos = nil
|
5
|
-
prgm = []
|
6
|
-
if lbl.match(/".*"/)
|
7
|
-
@prg.each_index do |p|
|
8
|
-
pos = @prg[p].index {|e| e == lbl}
|
9
|
-
page = p unless pos == nil
|
10
|
-
break if pos != nil
|
11
|
-
end
|
12
|
-
else
|
13
|
-
@prg[@pg][@pc..-1].each_with_index do |e, i|
|
14
|
-
pos = i + @pc if e == lbl
|
15
|
-
break if pos != nil
|
16
|
-
end
|
17
|
-
pos = @prg[@pg].index {|e| e == lbl} if pos == nil
|
18
|
-
page = @pg
|
19
|
-
end
|
20
|
-
if pos != nil
|
21
|
-
l = pos
|
22
|
-
until l == @prg[page].length do
|
23
|
-
line = @prg[page][l]
|
24
|
-
prgm.push(line)
|
25
|
-
break if line == "END"
|
26
|
-
l += 1
|
27
|
-
end
|
28
|
-
end
|
29
|
-
return page, pos, prgm
|
30
|
-
end
|
31
|
-
|
32
|
-
# vim:ft=ruby:
|