ruby-dcl 1.6.2
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.
- data/ChangeLog +321 -0
- data/GenWrapper/Makefile +14 -0
- data/GenWrapper/cproto2init.rb +41 -0
- data/GenWrapper/dcl_narrayed_funcs.rb +181 -0
- data/GenWrapper/dcl_rb_footing +29 -0
- data/GenWrapper/dcl_rb_heading +129 -0
- data/GenWrapper/def.rb +20 -0
- data/GenWrapper/elim_ary_size.rb +398 -0
- data/GenWrapper/etc/Mk_proto +375 -0
- data/GenWrapper/etc/dcl_gen +13 -0
- data/GenWrapper/etc/p_header +63 -0
- data/GenWrapper/etc/p_init +410 -0
- data/GenWrapper/pparse.rb +137 -0
- data/GenWrapper/proto/Makefile +35 -0
- data/GenWrapper/proto/grph1_00 +17 -0
- data/GenWrapper/proto/grph1_csgi.fp +27 -0
- data/GenWrapper/proto/grph1_scpack.fp +442 -0
- data/GenWrapper/proto/grph1_sgpack.fp +1406 -0
- data/GenWrapper/proto/grph1_slpack.fp +316 -0
- data/GenWrapper/proto/grph1_stpack.fp +411 -0
- data/GenWrapper/proto/grph1_swpack.fp +746 -0
- data/GenWrapper/proto/grph2_00 +16 -0
- data/GenWrapper/proto/grph2_grpack.fp +139 -0
- data/GenWrapper/proto/grph2_ucpack.fp +522 -0
- data/GenWrapper/proto/grph2_udpack.fp +692 -0
- data/GenWrapper/proto/grph2_uepack.fp +601 -0
- data/GenWrapper/proto/grph2_ugpack.fp +436 -0
- data/GenWrapper/proto/grph2_uhpack.fp +246 -0
- data/GenWrapper/proto/grph2_ulpack.fp +516 -0
- data/GenWrapper/proto/grph2_umpack.fp +676 -0
- data/GenWrapper/proto/grph2_uspack.fp +989 -0
- data/GenWrapper/proto/grph2_uupack.fp +663 -0
- data/GenWrapper/proto/grph2_uvpack.fp +246 -0
- data/GenWrapper/proto/grph2_uwpack.fp +203 -0
- data/GenWrapper/proto/grph2_uxpack.fp +295 -0
- data/GenWrapper/proto/grph2_uypack.fp +295 -0
- data/GenWrapper/proto/grph2_uzpack.fp +574 -0
- data/GenWrapper/proto/math1_00 +12 -0
- data/GenWrapper/proto/math1_blklib.fp +58 -0
- data/GenWrapper/proto/math1_chrlib.fp +83 -0
- data/GenWrapper/proto/math1_fnclib.fp +79 -0
- data/GenWrapper/proto/math1_gnmlib.fp +118 -0
- data/GenWrapper/proto/math1_gt2dlib.fp +144 -0
- data/GenWrapper/proto/math1_ifalib.fp +123 -0
- data/GenWrapper/proto/math1_indxlib.fp +222 -0
- data/GenWrapper/proto/math1_intlib.fp +46 -0
- data/GenWrapper/proto/math1_lrllib.fp +276 -0
- data/GenWrapper/proto/math1_maplib.fp +24 -0
- data/GenWrapper/proto/math1_oslib.fp +28 -0
- data/GenWrapper/proto/math1_rfalib.fp +420 -0
- data/GenWrapper/proto/math1_rfblib.fp +51 -0
- data/GenWrapper/proto/math1_sublib.fp +60 -0
- data/GenWrapper/proto/math1_syslib.fp +767 -0
- data/GenWrapper/proto/math1_vialib.fp +339 -0
- data/GenWrapper/proto/math1_viblib.fp +264 -0
- data/GenWrapper/proto/math1_vralib.fp +339 -0
- data/GenWrapper/proto/math1_vrblib.fp +264 -0
- data/GenWrapper/proto/math1_xfclib.fp +68 -0
- data/GenWrapper/proto/math2_00 +12 -0
- data/GenWrapper/proto/math2_fftlib.fp +803 -0
- data/GenWrapper/proto/math2_intrlib.fp +32 -0
- data/GenWrapper/proto/math2_odelib.fp_notused +568 -0
- data/GenWrapper/proto/math2_rnmlib.fp +54 -0
- data/GenWrapper/proto/math2_shtlib.fp +1292 -0
- data/GenWrapper/proto/math2_shtlib.fp_old +1294 -0
- data/GenWrapper/proto/math2_vstlib.fp +84 -0
- data/GenWrapper/proto/misc1_00 +17 -0
- data/GenWrapper/proto/misc1_chnlib.fp +47 -0
- data/GenWrapper/proto/misc1_datelib.fp +352 -0
- data/GenWrapper/proto/misc1_fmtlib.fp +19 -0
- data/GenWrapper/proto/misc1_misclib.fp +26 -0
- data/GenWrapper/proto/misc1_randlib.fp +36 -0
- data/GenWrapper/proto/misc1_timelib.fp +151 -0
- data/GenWrapper/proto2c.rb +13 -0
- data/GenWrapper/prototype.rb +209 -0
- data/GenWrapper/util.rb +9 -0
- data/GenWrapper/variable.rb +671 -0
- data/README +29 -0
- data/Rakefile +44 -0
- data/ToDo +2 -0
- data/dcl_cary2obj.c +354 -0
- data/dcl_narrayed_funcs.c +518 -0
- data/dcl_obj2cary.c +512 -0
- data/dcl_rubydcloriginal.c +129 -0
- data/demo/gokuraku/hop/hop.rb +26 -0
- data/demo/gokuraku/jump/jump1.rb +64 -0
- data/demo/gokuraku/jump/jump2.rb +50 -0
- data/demo/gokuraku/layout/lay1.rb +46 -0
- data/demo/gokuraku/layout/lay2.rb +44 -0
- data/demo/gokuraku/step/step0.rb +34 -0
- data/demo/gokuraku/step/step1.rb +84 -0
- data/demo/gokuraku/step/step2.rb +62 -0
- data/demo/gokuraku/u1d/u1d1.rb +37 -0
- data/demo/gokuraku/u1d/u1d2.rb +50 -0
- data/demo/gokuraku/u2d/u2d1.rb +46 -0
- data/demo/gokuraku/u2d/u2d2.rb +49 -0
- data/demo/gokuraku/u2d/u2d3.rb +45 -0
- data/demo/gokuraku/u2d/u2d4.rb +61 -0
- data/demo/grph1/scpack/scpkt2.rb +40 -0
- data/demo/grph1/scpack/scpkt3.rb +102 -0
- data/demo/grph1/scpack/scpkt6.rb +84 -0
- data/demo/grph1/scpack/scpkt7.rb +59 -0
- data/demo/grph1/scpack/scpkt8.rb +60 -0
- data/demo/grph1/scpack/t810630.dat +296 -0
- data/demo/grph1/scpack/t811231.dat +296 -0
- data/demo/grph1/sgpack/sgfont.rb +52 -0
- data/demo/grph1/sgpack/sgfonz.rb +53 -0
- data/demo/grph1/sgpack/sgksx1.rb +44 -0
- data/demo/grph1/sgpack/sgksx2.rb +90 -0
- data/demo/grph1/sgpack/sgksx3.rb +75 -0
- data/demo/grph1/sgpack/sglidx.rb +40 -0
- data/demo/grph1/sgpack/sgltyp.rb +48 -0
- data/demo/grph1/sgpack/sgpk01.rb +39 -0
- data/demo/grph1/sgpack/sgpk02.rb +79 -0
- data/demo/grph1/sgpack/sgpk03.rb +107 -0
- data/demo/grph1/sgpack/sgpk04.rb +86 -0
- data/demo/grph1/sgpack/sgpk05.rb +66 -0
- data/demo/grph1/sgpack/sgpk06.rb +91 -0
- data/demo/grph1/sgpack/sgpk07.rb +66 -0
- data/demo/grph1/sgpack/sgpk08.rb +67 -0
- data/demo/grph1/sgpack/sgpk09.rb +61 -0
- data/demo/grph1/sgpack/sgpk10.rb +58 -0
- data/demo/grph1/sgpack/sgtclr.rb +59 -0
- data/demo/grph1/sgpack/sgtone.rb +70 -0
- data/demo/grph1/sgpack/sgtonz.rb +66 -0
- data/demo/grph1/slpack/slpk01.rb +37 -0
- data/demo/grph1/slpack/slpk02.rb +29 -0
- data/demo/grph1/slpack/slpk03.rb +36 -0
- data/demo/grph1/slpack/slpk04.rb +36 -0
- data/demo/grph2/g2pack/g2pk01.rb +78 -0
- data/demo/grph2/g2pack/g2pk02.rb +75 -0
- data/demo/grph2/grpack/grpk01.rb +65 -0
- data/demo/grph2/ucpack/ucpk01.rb +95 -0
- data/demo/grph2/ucpack/ucpk02.rb +95 -0
- data/demo/grph2/udegpk/u2df01.rb +50 -0
- data/demo/grph2/udegpk/u2df02.rb +76 -0
- data/demo/grph2/udegpk/u2df03.rb +80 -0
- data/demo/grph2/udegpk/u2df04.rb +52 -0
- data/demo/grph2/udegpk/u2df05.rb +70 -0
- data/demo/grph2/udegpk/u2df06.rb +59 -0
- data/demo/grph2/udegpk/u2df07.rb +68 -0
- data/demo/grph2/udegpk/u2df08.rb +91 -0
- data/demo/grph2/udegpk/u2df09b.rb +88 -0
- data/demo/grph2/udegpk/u2df09c.rb +89 -0
- data/demo/grph2/udegpk/u2df09e.rb +88 -0
- data/demo/grph2/udegpk/u2df09f.rb +89 -0
- data/demo/grph2/ulpack/ulpk01.rb +111 -0
- data/demo/grph2/ulpack/ulpk01n.rb +111 -0
- data/demo/grph2/ulpack/ulpk02.rb +111 -0
- data/demo/grph2/ulpack/ulpk02n.rb +111 -0
- data/demo/grph2/umpack/t811231.dat +296 -0
- data/demo/grph2/umpack/test01.rb +69 -0
- data/demo/grph2/umpack/test02.rb +64 -0
- data/demo/grph2/umpack/test03.rb +84 -0
- data/demo/grph2/umpack/test04.rb +54 -0
- data/demo/grph2/umpack/test05.rb +85 -0
- data/demo/grph2/umpack/test06.rb +44 -0
- data/demo/grph2/umpack/test07.rb +43 -0
- data/demo/grph2/umpack/test08.rb +37 -0
- data/demo/grph2/umpack/test09.rb +86 -0
- data/demo/grph2/umpack/test10.rb +52 -0
- data/demo/grph2/umpack/umpk01.rb +65 -0
- data/demo/grph2/umpack/umpk02.rb +54 -0
- data/demo/grph2/umpack/umpk03.rb +46 -0
- data/demo/grph2/umpack/umpk04.rb +65 -0
- data/demo/grph2/umpack/umpk05.rb +84 -0
- data/demo/grph2/uspack/uspk01.rb +39 -0
- data/demo/grph2/uspack/uspk02.rb +47 -0
- data/demo/grph2/uspack/uspk03.rb +38 -0
- data/demo/grph2/uspack/uspk04.rb +64 -0
- data/demo/grph2/uspack/uspk05.rb +68 -0
- data/demo/grph2/uspack/uspk06.rb +43 -0
- data/demo/grph2/uspack/uspk07.rb +62 -0
- data/demo/grph2/uspack/uspk08.rb +46 -0
- data/demo/grph2/uspack/uspk09.rb +89 -0
- data/demo/grph2/uspack/uspk10.rb +48 -0
- data/demo/grph2/uspack/uspk11.rb +71 -0
- data/demo/grph2/uspack/uspk12.rb +51 -0
- data/demo/grph2/uupack/uupk01.rb +50 -0
- data/demo/grph2/uupack/uupk02.rb +74 -0
- data/demo/grph2/uupack/uupk03.rb +56 -0
- data/demo/grph2/uupack/uupk04.rb +84 -0
- data/demo/grph2/uupack/uupk05.rb +74 -0
- data/demo/grph2/uupack/uupk06.rb +77 -0
- data/demo/grph2/uupack/uupk07.rb +88 -0
- data/demo/grph2/uxyzpk/uxyz01.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz02.rb +36 -0
- data/demo/grph2/uxyzpk/uxyz03.rb +37 -0
- data/demo/grph2/uxyzpk/uxyz04.rb +54 -0
- data/demo/grph2/uxyzpk/uxyz05.rb +41 -0
- data/demo/grph2/uxyzpk/uxyz06.rb +42 -0
- data/demo/grph2/uxyzpk/uxyz07.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz08.rb +60 -0
- data/demo/grph2/uxyzpk/uxyz09.rb +52 -0
- data/demo/grph2/uxyzpk/uxyz10.rb +57 -0
- data/demo/grph2/ximage/MEMO +23 -0
- data/demo/grph2/ximage/tomsclm.dat +1344 -0
- data/demo/grph2/ximage/ximg01.rb +145 -0
- data/demo/math1/gt2dlib/gt2d01.rb +33 -0
- data/demo/math2/fftlib/fftl01.rb +28 -0
- data/demo/math2/fftlib/fftl02.rb +224 -0
- data/demo/math2/intrlib/intr01.rb +22 -0
- data/demo/math2/rnmlib/rnml01.rb +21 -0
- data/demo/math2/vstlib/vstl01.rb +29 -0
- data/demo/math2/vstlib/vstl02.rb +38 -0
- data/demo/rakuraku/color/color1.rb +61 -0
- data/demo/rakuraku/color/color2.rb +57 -0
- data/demo/rakuraku/color/color3.rb +81 -0
- data/demo/rakuraku/kihon/kihon1.rb +39 -0
- data/demo/rakuraku/kihon/kihon2.rb +56 -0
- data/demo/rakuraku/kihon/kihon3.rb +57 -0
- data/demo/rakuraku/kihon/kihon4.rb +70 -0
- data/demo/rakuraku/kihon/kihon5.rb +56 -0
- data/demo/rakuraku/kihon/kihon6.rb +40 -0
- data/demo/rakuraku/kihon/kihon7.rb +98 -0
- data/demo/rakuraku/kihon/kihon8.rb +93 -0
- data/demo/rakuraku/kihon/kihon9.rb +77 -0
- data/demo/rakuraku/kihon/kihona.rb +123 -0
- data/demo/rakuraku/kihon/kihonb.rb +73 -0
- data/demo/rakuraku/kihon/kihonc.rb +110 -0
- data/demo/rakuraku/layout/lay1.rb +29 -0
- data/demo/rakuraku/layout/lay2.rb +28 -0
- data/demo/rakuraku/layout/lay3.rb +29 -0
- data/demo/rakuraku/map3d/map3d1.rb +68 -0
- data/demo/rakuraku/map3d/map3d2.rb +67 -0
- data/demo/rakuraku/map3d/map3d3.rb +66 -0
- data/demo/rakuraku/map3d/map3d4.rb +107 -0
- data/demo/rakuraku/map3d/map3d5.rb +118 -0
- data/demo/rakuraku/map3d/map3d6.rb +96 -0
- data/demo/rakuraku/map3d/map3d7.rb +98 -0
- data/demo/rakuraku/miss/miss1.rb +76 -0
- data/demo/rakuraku/miss/miss2.rb +60 -0
- data/demo/rakuraku/quick/quick1.rb +35 -0
- data/demo/rakuraku/quick/quick2.rb +33 -0
- data/demo/rakuraku/quick/quick3.rb +46 -0
- data/demo/rakuraku/quick/quick4.rb +47 -0
- data/demo/rakuraku/quick/quick5.rb +46 -0
- data/demo/rakuraku/u2d/u2d1.rb +50 -0
- data/demo/rakuraku/u2d/u2d2.rb +51 -0
- data/demo/rakuraku/u2d/u2d3.rb +70 -0
- data/demo/rakuraku/u2d/u2d4.rb +59 -0
- data/demo/rakuraku/u2d/u2d5.rb +61 -0
- data/demo/rakuraku/u2d/u2d6.rb +57 -0
- data/demo/rakuraku/u2d/u2d7.rb +103 -0
- data/demo/rakuraku/uspack/uspac1.rb +35 -0
- data/demo/rakuraku/uspack/uspac2.rb +66 -0
- data/demo/rakuraku/uspack/uspac3.rb +37 -0
- data/demo/rakuraku/uspack/uspac4.rb +49 -0
- data/demo/rakuraku/uxyz/uxyz1.rb +37 -0
- data/demo/rakuraku/uxyz/uxyz2.rb +35 -0
- data/demo/rakuraku/uxyz/uxyz3.rb +38 -0
- data/demo/rakuraku/uxyz/uxyz4.rb +36 -0
- data/demo/rakuraku/uxyz/uxyz5.rb +57 -0
- data/demo/rakuraku/uxyz/uxyz6.rb +43 -0
- data/demo/rakuraku/uxyz/uxyz7.rb +39 -0
- data/demo/rakuraku/uxyz/uxyz8.rb +56 -0
- data/demo/rubydcloriginal/uemrkz1.rb +37 -0
- data/dummy.c +9 -0
- data/extconf.rb +133 -0
- data/grph1_csgi.c +119 -0
- data/grph1_scpack.c +1388 -0
- data/grph1_sgpack.c +3876 -0
- data/grph1_slpack.c +432 -0
- data/grph1_stpack.c +1044 -0
- data/grph1_swpack.c +1922 -0
- data/grph1_zgpack.c.org +141 -0
- data/grph2_grpack.c +368 -0
- data/grph2_ucpack.c +1232 -0
- data/grph2_udpack.c +1404 -0
- data/grph2_uepack.c +1443 -0
- data/grph2_ugpack.c +1073 -0
- data/grph2_uhpack.c +943 -0
- data/grph2_ulpack.c +1304 -0
- data/grph2_umpack.c +1540 -0
- data/grph2_uspack.c +2481 -0
- data/grph2_uupack.c +1689 -0
- data/grph2_uvpack.c +943 -0
- data/grph2_uwpack.c +552 -0
- data/grph2_uxpack.c +555 -0
- data/grph2_uypack.c +555 -0
- data/grph2_uzpack.c +1455 -0
- data/init.c.default +187 -0
- data/init.c.gtk +189 -0
- data/lib/dcl.rb +5084 -0
- data/math1_blklib.c +227 -0
- data/math1_chrlib.c +239 -0
- data/math1_fnclib.c +254 -0
- data/math1_gnmlib.c +356 -0
- data/math1_gt2dlib.c +514 -0
- data/math1_ifalib.c +427 -0
- data/math1_indxlib.c +709 -0
- data/math1_intlib.c +167 -0
- data/math1_lrllib.c +817 -0
- data/math1_maplib.c +172 -0
- data/math1_oslib.c +111 -0
- data/math1_rfalib.c +1417 -0
- data/math1_rfblib.c +232 -0
- data/math1_sublib.c +221 -0
- data/math1_syslib.c +2025 -0
- data/math1_vialib.c +1156 -0
- data/math1_viblib.c +1027 -0
- data/math1_vralib.c +1156 -0
- data/math1_vrblib.c +1027 -0
- data/math1_xfclib.c +142 -0
- data/math2_fftlib.c +833 -0
- data/math2_intrlib.c +138 -0
- data/math2_rnmlib.c +226 -0
- data/math2_shtlib.c +1568 -0
- data/math2_vstlib.c +366 -0
- data/misc1_chnlib.c +179 -0
- data/misc1_datelib.c +953 -0
- data/misc1_fmtlib.c +99 -0
- data/misc1_misclib.c +118 -0
- data/misc1_randlib.c +142 -0
- data/misc1_timelib.c +380 -0
- data/obsolete/README +2 -0
- data/obsolete/dcl_ext.html +112 -0
- data/obsolete/dcl_ext.rb +313 -0
- metadata +433 -0
data/GenWrapper/util.rb
ADDED
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
# variable.rb - Attribute specific modules
|
|
2
|
+
# $Id: variable.rb,v 1.1.1.1 2011-02-23 07:21:28 horinout Exp $
|
|
3
|
+
|
|
4
|
+
require "./util"
|
|
5
|
+
require "./def"
|
|
6
|
+
|
|
7
|
+
module Input
|
|
8
|
+
PREFIX = "i_"
|
|
9
|
+
def input?; true; end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Output
|
|
13
|
+
PREFIX = "o_"
|
|
14
|
+
def output?; true; end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module Working
|
|
18
|
+
PREFIX = "w_"
|
|
19
|
+
def work?; true; end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
module InputOutput
|
|
23
|
+
PREFIX = "io_"
|
|
24
|
+
def input?; true; end
|
|
25
|
+
def output?; true; end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def Variable(name, vtype, attr, ary, charlen)
|
|
29
|
+
vt = vtype.capitalize
|
|
30
|
+
at = case attr
|
|
31
|
+
when "i"
|
|
32
|
+
"Input"
|
|
33
|
+
when "o"
|
|
34
|
+
"Output"
|
|
35
|
+
when "io"
|
|
36
|
+
"InputOutput"
|
|
37
|
+
when "t"
|
|
38
|
+
"Working"
|
|
39
|
+
end
|
|
40
|
+
ar = ary ? "Array" : ""
|
|
41
|
+
klass = eval(vt + at + ar + "Variable")
|
|
42
|
+
klass.new(name, ary, charlen)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class Variable
|
|
46
|
+
def initialize(name, ary, *arg)
|
|
47
|
+
@name = name
|
|
48
|
+
@ary = ary
|
|
49
|
+
@arysize = nil
|
|
50
|
+
@aryrank = nil
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
attr_reader :name;
|
|
54
|
+
attr_reader :ary;
|
|
55
|
+
attr_reader :aryrank;
|
|
56
|
+
|
|
57
|
+
def prefix
|
|
58
|
+
self.class::PREFIX
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def vartype
|
|
62
|
+
self.class::VARTYPE
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def arg_name
|
|
66
|
+
"&" + prefix + name
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def localvariable
|
|
70
|
+
[vartype, prefix+name]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def ftnlen
|
|
74
|
+
nil
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def checktype
|
|
78
|
+
"/* checktype: not implemented for #{name} (#{self.class}) */\n"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def initialization
|
|
82
|
+
"/* initialization: not implemented for #{name} (#{self.class}) */\n"
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def allocworkingarea
|
|
86
|
+
nil
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def getresult
|
|
90
|
+
"/* getresult: not implemented for #{name} (#{self.class}) */\n"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def freecary
|
|
94
|
+
nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def freeworkingarea
|
|
98
|
+
nil
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def input?; false; end
|
|
102
|
+
def output?; false; end
|
|
103
|
+
def work?; false; end
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
## Type specific modules
|
|
108
|
+
|
|
109
|
+
module DefaultType
|
|
110
|
+
def basic_r2c(r, c)
|
|
111
|
+
"/* not implemented */"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def basic_c2r(r, c)
|
|
115
|
+
"/* not implemented */"
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
module CharacterType
|
|
120
|
+
include DefaultType
|
|
121
|
+
|
|
122
|
+
VARTYPE = "char *"
|
|
123
|
+
|
|
124
|
+
def initialize(name, ary, *arg)
|
|
125
|
+
super
|
|
126
|
+
if arg[0]
|
|
127
|
+
@charlen = (arg[0] == "*") ? "DFLT_SIZE" : arg[0]
|
|
128
|
+
else
|
|
129
|
+
@charlen = "1"
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def basic_r2c(r, c)
|
|
134
|
+
%Q$#{c} = StringValuePtr(#{r});\n$
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def basic_r2c_copy(r, c)
|
|
138
|
+
type = self.vartype.gsub(/\s+\*$/, "")
|
|
139
|
+
%Q$#{c} = ALLOCA_N(#{type}, strlen(StringValuePtr(#{r}))+1);\n$ +
|
|
140
|
+
%Q$strcpy(#{c}, StringValuePtr(#{r}));\n$
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def basic_c2r(r, c)
|
|
144
|
+
%Q$#{r} = rb_str_new2(#{c});\n$
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
module IntegerType
|
|
149
|
+
include DefaultType
|
|
150
|
+
|
|
151
|
+
VARTYPE = "integer"
|
|
152
|
+
|
|
153
|
+
def basic_r2c(r, c)
|
|
154
|
+
%Q$#{c} = NUM2INT(#{r});\n$
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def basic_c2r(r, c)
|
|
158
|
+
%Q$#{r} = INT2NUM(#{c});\n$
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
module RealType
|
|
163
|
+
include DefaultType
|
|
164
|
+
|
|
165
|
+
VARTYPE = "real"
|
|
166
|
+
|
|
167
|
+
def basic_r2c(r, c)
|
|
168
|
+
%Q$#{c} = (#{VARTYPE})NUM2DBL(#{r});\n$
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def basic_c2r(r, c)
|
|
172
|
+
%Q$#{r} = rb_float_new((double)#{c});\n$
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
module ComplexType
|
|
177
|
+
include DefaultType
|
|
178
|
+
|
|
179
|
+
VARTYPE = "complex"
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
module LogicalType
|
|
183
|
+
include DefaultType
|
|
184
|
+
|
|
185
|
+
VARTYPE = "logical"
|
|
186
|
+
|
|
187
|
+
def basic_r2c(r, c)
|
|
188
|
+
%Q$#{c} = ((#{r} == Qnil)||(#{r} == Qfalse)) ? FALSE_ : TRUE_;\n$
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def basic_c2r(r, c)
|
|
192
|
+
%Q$#{r} = (#{c} == FALSE_) ? Qfalse : Qtrue;\n$
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
## Basic Variables
|
|
197
|
+
|
|
198
|
+
class CharacterVariable < Variable
|
|
199
|
+
include CharacterType
|
|
200
|
+
|
|
201
|
+
def arg_name
|
|
202
|
+
"" + prefix + name
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def ftnlen
|
|
206
|
+
if self.input?
|
|
207
|
+
"(ftnlen)strlen(#{prefix+name})"
|
|
208
|
+
else
|
|
209
|
+
"(ftnlen)#{@charlen}"
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def checktype
|
|
214
|
+
"" +
|
|
215
|
+
%Q$if (TYPE(#{name}) != T_STRING) {\n$ +
|
|
216
|
+
%Q$ #{name} = rb_funcall(#{name}, rb_intern("to_str"), 0);\n$ +
|
|
217
|
+
%Q$}\n$
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def initialization
|
|
221
|
+
if self.input? && self.output?
|
|
222
|
+
basic_r2c_copy(name, prefix+name)
|
|
223
|
+
else
|
|
224
|
+
basic_r2c(name, prefix+name)
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def allocworkingarea # kuro: +1 need ?
|
|
229
|
+
type = vartype.gsub(/\s+\*$/, "")
|
|
230
|
+
len = (@charlen + "+1").gsub(/^1[+]1/,"2")
|
|
231
|
+
%Q$#{prefix+name}= ALLOCA_N(#{type}, (#{len}));\n$ +
|
|
232
|
+
%Q$memset(#{prefix+name}, '\\0', #{len});\n$
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def getresult
|
|
236
|
+
basic_c2r(name, prefix+name)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def freeworkingarea
|
|
240
|
+
nil
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
class IntegerVariable < Variable
|
|
245
|
+
include IntegerType
|
|
246
|
+
|
|
247
|
+
def checktype
|
|
248
|
+
"" +
|
|
249
|
+
%Q$if ((TYPE(#{name}) != T_BIGNUM) || (TYPE(#{name}) != T_FIXNUM)) {\n$ +
|
|
250
|
+
%Q$ #{name} = rb_funcall(#{name}, rb_intern("to_i"), 0);\n$ +
|
|
251
|
+
%Q$}\n$
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def initialization
|
|
255
|
+
basic_r2c(name, prefix+name)
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
def getresult
|
|
259
|
+
basic_c2r(name, prefix+name)
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
class RealVariable < Variable
|
|
264
|
+
include RealType
|
|
265
|
+
|
|
266
|
+
def checktype
|
|
267
|
+
"" +
|
|
268
|
+
%Q$if (TYPE(#{name}) != T_FLOAT) {\n$ +
|
|
269
|
+
%Q$ #{name} = rb_funcall(#{name}, rb_intern("to_f"), 0);\n$ +
|
|
270
|
+
%Q$}\n$
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def initialization
|
|
274
|
+
basic_r2c(name, prefix+name)
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
def getresult
|
|
278
|
+
basic_c2r(name, prefix+name)
|
|
279
|
+
end
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
class ComplexVariable < Variable
|
|
283
|
+
include ComplexType
|
|
284
|
+
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
class LogicalVariable < Variable
|
|
288
|
+
include LogicalType
|
|
289
|
+
|
|
290
|
+
def checktype
|
|
291
|
+
nil
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
def initialization
|
|
295
|
+
basic_r2c(name, prefix+name)
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
def getresult
|
|
299
|
+
basic_c2r(name, prefix+name)
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
### Character
|
|
304
|
+
class CharacterInputVariable < CharacterVariable
|
|
305
|
+
include Input
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
class CharacterOutputVariable < CharacterVariable
|
|
309
|
+
include Output
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
class CharacterInputOutputVariable < CharacterVariable
|
|
313
|
+
include InputOutput
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
class CharacterWorkingVariable < CharacterVariable
|
|
317
|
+
include Working
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
### Integer
|
|
321
|
+
class IntegerInputVariable < IntegerVariable
|
|
322
|
+
include Input
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
class IntegerOutputVariable < IntegerVariable
|
|
326
|
+
include Output
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
class IntegerInputOutputVariable < IntegerVariable
|
|
330
|
+
include InputOutput
|
|
331
|
+
end
|
|
332
|
+
|
|
333
|
+
class IntegerWorkingVariable < IntegerVariable
|
|
334
|
+
include Working
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
### Real
|
|
338
|
+
class RealInputVariable < RealVariable
|
|
339
|
+
include Input
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
class RealOutputVariable < RealVariable
|
|
343
|
+
include Output
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
class RealInputOutputVariable < RealVariable
|
|
347
|
+
include InputOutput
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
class RealWorkingVariable < RealVariable
|
|
351
|
+
include Working
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
### Complex
|
|
355
|
+
class ComplexInputVariable < ComplexVariable
|
|
356
|
+
include Input
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
class ComplexOutputVariable < ComplexVariable
|
|
360
|
+
include Output
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
class ComplexInputOutputVariable < ComplexVariable
|
|
364
|
+
include InputOutput
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
class ComplexWorkingVariable < ComplexVariable
|
|
368
|
+
include Working
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
### Logical
|
|
372
|
+
class LogicalInputVariable < LogicalVariable
|
|
373
|
+
include Input
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
class LogicalOutputVariable < LogicalVariable
|
|
377
|
+
include Output
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
class LogicalInputOutputVariable < LogicalVariable
|
|
381
|
+
include InputOutput
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
class LogicalWorkingVariable < LogicalVariable
|
|
385
|
+
include Working
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
## Array Variables
|
|
389
|
+
|
|
390
|
+
class ArrayVariable < Variable
|
|
391
|
+
|
|
392
|
+
def setarysize(size)
|
|
393
|
+
@arysize = size
|
|
394
|
+
@aryrank = size.size
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
def arysize
|
|
398
|
+
if (@aryrank == 1)
|
|
399
|
+
if (@arysize[0].to_s !~ /\(/)
|
|
400
|
+
"(" + @arysize[0].to_s + ")"
|
|
401
|
+
else
|
|
402
|
+
@arysize[0].to_s
|
|
403
|
+
end
|
|
404
|
+
else
|
|
405
|
+
"(" + @arysize.join("*").gsub(/\*1/, "") + ")"
|
|
406
|
+
end
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
def aryshape
|
|
410
|
+
# if (@aryrank == 1)
|
|
411
|
+
# if (@arysize[0].to_s !~ /\(/)
|
|
412
|
+
# "(" + @arysize[0].to_s + ")"
|
|
413
|
+
# else
|
|
414
|
+
# @arysize[0].to_s
|
|
415
|
+
# end
|
|
416
|
+
# else
|
|
417
|
+
"{"+ @arysize.join(", ").gsub(/\*1/, "")+"}"
|
|
418
|
+
# end
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
def arg_name
|
|
422
|
+
"" + prefix + name
|
|
423
|
+
end
|
|
424
|
+
|
|
425
|
+
def allocworkingarea
|
|
426
|
+
type = vartype.gsub(/\s+\*$/, "")
|
|
427
|
+
%Q$#{prefix+name}= ALLOCA_N(#{type}, #{arysize});\n$
|
|
428
|
+
end
|
|
429
|
+
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
class CharacterArrayVariable < ArrayVariable
|
|
433
|
+
include CharacterType
|
|
434
|
+
|
|
435
|
+
def arysize
|
|
436
|
+
"(" + (@arysize.join("*") + "*" + @charlen).gsub(/\*1/, "") + ")"
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
def ftnlen
|
|
440
|
+
"(ftnlen)#{@charlen}"
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
def checktype
|
|
444
|
+
"" +
|
|
445
|
+
%Q$if (TYPE(#{name}) == T_STRING) {\n$ +
|
|
446
|
+
%Q$ #{name} = rb_Array(#{name});\n$ +
|
|
447
|
+
%Q$}\n$ +
|
|
448
|
+
%Q$if (TYPE(#{name}) != T_ARRAY) {\n$ +
|
|
449
|
+
%Q$ rb_raise(rb_eTypeError, "invalid type");\n$ +
|
|
450
|
+
%Q$}\n$
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
def initialization
|
|
454
|
+
%Q$#{prefix+name} = #{OBJ2CCHARARY}(#{name}, #{arysize}, #{@charlen});\n$
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
def allocworkingarea
|
|
458
|
+
type = vartype.gsub(/\s+\*$/, "")
|
|
459
|
+
%Q$#{prefix+name}= ALLOCA_N(#{type}, #{arysize});\n$ +
|
|
460
|
+
%Q$memset(#{prefix+name}, '\\0', #{arysize});\n$
|
|
461
|
+
end
|
|
462
|
+
|
|
463
|
+
def getresult
|
|
464
|
+
%Q$#{name} = #{CCHARARY2OBJ}(#{prefix+name}, #{arysize}, #{@charlen});\n$
|
|
465
|
+
end
|
|
466
|
+
|
|
467
|
+
def freecary
|
|
468
|
+
%Q$#{FREECCHARARY}(#{prefix+name});\n$
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
class IntegerArrayVariable < ArrayVariable
|
|
474
|
+
include IntegerType
|
|
475
|
+
|
|
476
|
+
VARTYPE += " *"
|
|
477
|
+
|
|
478
|
+
def checktype
|
|
479
|
+
"" +
|
|
480
|
+
%Q$if ((TYPE(#{name}) == T_BIGNUM) || (TYPE(#{name}) == T_FIXNUM)) {\n$ +
|
|
481
|
+
%Q$ #{name} = rb_Array(#{name});\n$ +
|
|
482
|
+
%Q$}\n$ +
|
|
483
|
+
%Q$/* if ((TYPE(#{name}) != T_ARRAY) && \n$ +
|
|
484
|
+
%Q$ (rb_obj_is_kind_of(#{name}, cNArray) != Qtrue)) {\n$ +
|
|
485
|
+
%Q$ rb_raise(rb_eTypeError, "invalid type");\n$ +
|
|
486
|
+
%Q$ } -- no check since obj2c*ary will do that */\n$
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
def initialization
|
|
490
|
+
%Q$#{prefix+name} = #{OBJ2CINTEGERARY}(#{name});\n$
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
def getresult
|
|
494
|
+
%Q${int array_shape[#{aryrank}] = #{aryshape};\n$ +
|
|
495
|
+
%Q$ #{name} = #{CINTEGERARY2OBJ}(#{prefix+name}, #{arysize}, #{aryrank}, array_shape);\n$ +
|
|
496
|
+
%Q$ }\n$
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
def freecary
|
|
500
|
+
%Q$#{FREECINTEGERARY}(#{prefix+name});\n$
|
|
501
|
+
end
|
|
502
|
+
end
|
|
503
|
+
|
|
504
|
+
class RealArrayVariable < ArrayVariable
|
|
505
|
+
include RealType
|
|
506
|
+
VARTYPE += " *"
|
|
507
|
+
|
|
508
|
+
def checktype
|
|
509
|
+
"" +
|
|
510
|
+
%Q$if (TYPE(#{name}) == T_FLOAT) {\n$ +
|
|
511
|
+
%Q$ #{name} = rb_Array(#{name});\n$ +
|
|
512
|
+
%Q$}\n$ +
|
|
513
|
+
%Q$/* if ((TYPE(#{name}) != T_ARRAY) && \n$ +
|
|
514
|
+
%Q$ (rb_obj_is_kind_of(#{name}, cNArray) != Qtrue)) {\n$ +
|
|
515
|
+
%Q$ rb_raise(rb_eTypeError, "invalid type");\n$ +
|
|
516
|
+
%Q$ } -- no check since obj2c*ary will do that */\n$
|
|
517
|
+
end
|
|
518
|
+
|
|
519
|
+
def initialization
|
|
520
|
+
%Q$#{prefix+name} = #{OBJ2CREALARY}(#{name});\n$
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
def getresult
|
|
524
|
+
%Q${int array_shape[#{aryrank}] = #{aryshape};\n$ +
|
|
525
|
+
%Q$ #{name} = #{CREALARY2OBJ}(#{prefix+name}, #{arysize}, #{aryrank}, array_shape);\n$ +
|
|
526
|
+
%Q$ }\n$
|
|
527
|
+
end
|
|
528
|
+
|
|
529
|
+
def freecary
|
|
530
|
+
%Q$#{FREECREALARY}(#{prefix+name});\n$
|
|
531
|
+
end
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
class ComplexArrayVariable < ArrayVariable
|
|
535
|
+
include ComplexType
|
|
536
|
+
|
|
537
|
+
VARTYPE += " *"
|
|
538
|
+
|
|
539
|
+
# def checktype
|
|
540
|
+
# "" +
|
|
541
|
+
# %Q$if (TYPE(#{name}) == T_XXXXX) {\n$ +
|
|
542
|
+
# %Q$ #{name} = rb_Array(#{name});\n$ +
|
|
543
|
+
# %Q$}\n$ +
|
|
544
|
+
# %Q$if (TYPE(#{name}) != T_ARRAY) {\n$ +
|
|
545
|
+
# %Q$ rb_raise(rb_eTypeError, "invalid type");\n$ +
|
|
546
|
+
# %Q$}\n$
|
|
547
|
+
# end
|
|
548
|
+
|
|
549
|
+
# def initialization
|
|
550
|
+
# %Q$#{prefix+name} = #{OBJ2CCOMPLEXARY}(#{name});\n$
|
|
551
|
+
# end
|
|
552
|
+
|
|
553
|
+
# def getresult
|
|
554
|
+
# %Q$#{name} = #{CCOMPLEXARY2OBJ}(#{prefix+name}, #{arysize}, "");\n$
|
|
555
|
+
# end
|
|
556
|
+
|
|
557
|
+
# def freecary
|
|
558
|
+
# %Q$ #{FREECCOMPLEXARY}(#{prefix+name});\n$
|
|
559
|
+
# end
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
class LogicalArrayVariable < ArrayVariable
|
|
563
|
+
include LogicalType
|
|
564
|
+
|
|
565
|
+
VARTYPE += " *"
|
|
566
|
+
|
|
567
|
+
def checktype
|
|
568
|
+
"" +
|
|
569
|
+
%Q$#{name} = rb_Array(#{name});\n$
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
def initialization
|
|
573
|
+
%Q$#{prefix+name} = #{OBJ2CLOGICALARY}(#{name});\n$
|
|
574
|
+
end
|
|
575
|
+
|
|
576
|
+
def getresult
|
|
577
|
+
%Q${int array_shape[#{aryrank}] = #{aryshape};\n$ +
|
|
578
|
+
%Q$ #{name} = #{CLOGICALARY2OBJ}(#{prefix+name}, #{arysize}, #{aryrank}, array_shape);\n$ +
|
|
579
|
+
%Q$ }\n$
|
|
580
|
+
end
|
|
581
|
+
|
|
582
|
+
def freecary
|
|
583
|
+
%Q$#{FREECLOGICALARY2}(#{prefix+name});\n$
|
|
584
|
+
end
|
|
585
|
+
end
|
|
586
|
+
|
|
587
|
+
### Character
|
|
588
|
+
class CharacterInputArrayVariable < CharacterArrayVariable
|
|
589
|
+
include Input
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
class CharacterOutputArrayVariable < CharacterArrayVariable
|
|
593
|
+
include Output
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
class CharacterInputOutputArrayVariable < CharacterArrayVariable
|
|
597
|
+
include InputOutput
|
|
598
|
+
end
|
|
599
|
+
|
|
600
|
+
class CharacterWorkingArrayVariable < CharacterArrayVariable
|
|
601
|
+
include Working
|
|
602
|
+
end
|
|
603
|
+
|
|
604
|
+
### Integer
|
|
605
|
+
class IntegerInputArrayVariable < IntegerArrayVariable
|
|
606
|
+
include Input
|
|
607
|
+
end
|
|
608
|
+
|
|
609
|
+
class IntegerOutputArrayVariable < IntegerArrayVariable
|
|
610
|
+
include Output
|
|
611
|
+
end
|
|
612
|
+
|
|
613
|
+
class IntegerInputOutputArrayVariable < IntegerArrayVariable
|
|
614
|
+
include InputOutput
|
|
615
|
+
end
|
|
616
|
+
|
|
617
|
+
class IntegerWorkingArrayVariable < IntegerArrayVariable
|
|
618
|
+
include Working
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
### Real
|
|
622
|
+
class RealInputArrayVariable < RealArrayVariable
|
|
623
|
+
include Input
|
|
624
|
+
end
|
|
625
|
+
|
|
626
|
+
class RealOutputArrayVariable < RealArrayVariable
|
|
627
|
+
include Output
|
|
628
|
+
end
|
|
629
|
+
|
|
630
|
+
class RealInputOutputArrayVariable < RealArrayVariable
|
|
631
|
+
include InputOutput
|
|
632
|
+
end
|
|
633
|
+
|
|
634
|
+
class RealWorkingArrayVariable < RealArrayVariable
|
|
635
|
+
include Working
|
|
636
|
+
end
|
|
637
|
+
|
|
638
|
+
### Complex
|
|
639
|
+
class ComplexInputArrayVariable < ComplexArrayVariable
|
|
640
|
+
include Input
|
|
641
|
+
end
|
|
642
|
+
|
|
643
|
+
class ComplexOutputArrayVariable < ComplexArrayVariable
|
|
644
|
+
include Output
|
|
645
|
+
end
|
|
646
|
+
|
|
647
|
+
class ComplexInputOutputArrayVariable < ComplexArrayVariable
|
|
648
|
+
include InputOutput
|
|
649
|
+
end
|
|
650
|
+
|
|
651
|
+
class ComplexWorkingArrayVariable < ComplexArrayVariable
|
|
652
|
+
include Working
|
|
653
|
+
end
|
|
654
|
+
|
|
655
|
+
### Logical
|
|
656
|
+
class LogicalInputArrayVariable < LogicalArrayVariable
|
|
657
|
+
include Input
|
|
658
|
+
end
|
|
659
|
+
|
|
660
|
+
class LogicalOutputArrayVariable < LogicalArrayVariable
|
|
661
|
+
include Output
|
|
662
|
+
end
|
|
663
|
+
|
|
664
|
+
class LogicalInputOutputArrayVariable < LogicalArrayVariable
|
|
665
|
+
include InputOutput
|
|
666
|
+
end
|
|
667
|
+
|
|
668
|
+
class LogicalWorkingArrayVariable < LogicalArrayVariable
|
|
669
|
+
include Working
|
|
670
|
+
end
|
|
671
|
+
|