@abaplint/runtime 2.5.38 → 2.5.40

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.
Files changed (327) hide show
  1. package/build/src/abap_regex.d.ts +4 -4
  2. package/build/src/abap_regex.js +18 -18
  3. package/build/src/binary_search.d.ts +5 -5
  4. package/build/src/binary_search.js +48 -48
  5. package/build/src/builtin/abs.d.ts +5 -5
  6. package/build/src/builtin/abs.js +17 -17
  7. package/build/src/builtin/boolc.d.ts +4 -4
  8. package/build/src/builtin/boolc.js +22 -22
  9. package/build/src/builtin/ceil.d.ts +5 -5
  10. package/build/src/builtin/ceil.js +17 -17
  11. package/build/src/builtin/concat_lines_of.d.ts +7 -7
  12. package/build/src/builtin/concat_lines_of.js +15 -15
  13. package/build/src/builtin/condense.d.ts +9 -9
  14. package/build/src/builtin/condense.js +28 -28
  15. package/build/src/builtin/contains.d.ts +12 -12
  16. package/build/src/builtin/contains.js +15 -15
  17. package/build/src/builtin/cos.d.ts +5 -5
  18. package/build/src/builtin/cos.js +22 -22
  19. package/build/src/builtin/count.d.ts +12 -12
  20. package/build/src/builtin/count.js +37 -37
  21. package/build/src/builtin/count_any_of.d.ts +8 -8
  22. package/build/src/builtin/count_any_of.js +17 -17
  23. package/build/src/builtin/escape.d.ts +7 -7
  24. package/build/src/builtin/escape.js +30 -30
  25. package/build/src/builtin/find.d.ts +13 -13
  26. package/build/src/builtin/find.js +57 -57
  27. package/build/src/builtin/floor.d.ts +5 -5
  28. package/build/src/builtin/floor.js +17 -17
  29. package/build/src/builtin/frac.d.ts +6 -6
  30. package/build/src/builtin/frac.js +40 -40
  31. package/build/src/builtin/index.d.ts +47 -47
  32. package/build/src/builtin/index.js +64 -64
  33. package/build/src/builtin/insert.d.ts +9 -9
  34. package/build/src/builtin/insert.js +15 -15
  35. package/build/src/builtin/ipow.d.ts +6 -6
  36. package/build/src/builtin/ipow.js +27 -27
  37. package/build/src/builtin/lines.d.ts +4 -4
  38. package/build/src/builtin/lines.js +8 -8
  39. package/build/src/builtin/match.d.ts +5 -5
  40. package/build/src/builtin/match.js +22 -22
  41. package/build/src/builtin/matches.d.ts +6 -6
  42. package/build/src/builtin/matches.js +29 -29
  43. package/build/src/builtin/nmax.d.ts +14 -14
  44. package/build/src/builtin/nmax.js +34 -34
  45. package/build/src/builtin/nmin.d.ts +14 -14
  46. package/build/src/builtin/nmin.js +34 -34
  47. package/build/src/builtin/numofchar.d.ts +5 -5
  48. package/build/src/builtin/numofchar.js +15 -15
  49. package/build/src/builtin/repeat.d.ts +6 -6
  50. package/build/src/builtin/repeat.js +9 -9
  51. package/build/src/builtin/replace.d.ts +13 -13
  52. package/build/src/builtin/replace.js +65 -65
  53. package/build/src/builtin/reverse.d.ts +5 -5
  54. package/build/src/builtin/reverse.js +16 -16
  55. package/build/src/builtin/round.d.ts +8 -8
  56. package/build/src/builtin/round.js +41 -41
  57. package/build/src/builtin/segment.d.ts +8 -8
  58. package/build/src/builtin/segment.js +32 -32
  59. package/build/src/builtin/shift_left.d.ts +9 -9
  60. package/build/src/builtin/shift_left.js +30 -30
  61. package/build/src/builtin/sign.d.ts +5 -5
  62. package/build/src/builtin/sign.js +17 -17
  63. package/build/src/builtin/sin.d.ts +5 -5
  64. package/build/src/builtin/sin.js +22 -22
  65. package/build/src/builtin/sqrt.d.ts +5 -5
  66. package/build/src/builtin/sqrt.js +22 -22
  67. package/build/src/builtin/strlen.d.ts +5 -5
  68. package/build/src/builtin/strlen.js +15 -15
  69. package/build/src/builtin/substring.d.ts +8 -8
  70. package/build/src/builtin/substring.js +28 -28
  71. package/build/src/builtin/substring_after.d.ts +6 -6
  72. package/build/src/builtin/substring_after.js +28 -28
  73. package/build/src/builtin/substring_before.d.ts +6 -6
  74. package/build/src/builtin/substring_before.js +28 -28
  75. package/build/src/builtin/sy.d.ts +2 -2
  76. package/build/src/builtin/sy.js +30 -30
  77. package/build/src/builtin/tan.d.ts +5 -5
  78. package/build/src/builtin/tan.js +22 -22
  79. package/build/src/builtin/to_lower.d.ts +4 -4
  80. package/build/src/builtin/to_lower.js +9 -9
  81. package/build/src/builtin/to_mixed.d.ts +9 -9
  82. package/build/src/builtin/to_mixed.js +48 -48
  83. package/build/src/builtin/to_upper.d.ts +4 -4
  84. package/build/src/builtin/to_upper.js +9 -9
  85. package/build/src/builtin/translate.d.ts +6 -6
  86. package/build/src/builtin/translate.js +19 -19
  87. package/build/src/builtin/trunc.d.ts +5 -5
  88. package/build/src/builtin/trunc.js +17 -17
  89. package/build/src/builtin/xstrlen.d.ts +5 -5
  90. package/build/src/builtin/xstrlen.js +13 -13
  91. package/build/src/classic_error.d.ts +6 -6
  92. package/build/src/classic_error.js +10 -10
  93. package/build/src/clone.d.ts +1 -1
  94. package/build/src/clone.js +37 -37
  95. package/build/src/compare/assigned.d.ts +2 -2
  96. package/build/src/compare/assigned.js +7 -7
  97. package/build/src/compare/between.d.ts +2 -2
  98. package/build/src/compare/between.js +9 -9
  99. package/build/src/compare/ca.d.ts +3 -3
  100. package/build/src/compare/ca.js +36 -36
  101. package/build/src/compare/cn.d.ts +3 -3
  102. package/build/src/compare/cn.js +8 -8
  103. package/build/src/compare/co.d.ts +4 -4
  104. package/build/src/compare/co.js +37 -37
  105. package/build/src/compare/cp.d.ts +4 -4
  106. package/build/src/compare/cp.js +48 -48
  107. package/build/src/compare/cs.d.ts +3 -3
  108. package/build/src/compare/cs.js +33 -33
  109. package/build/src/compare/eq.d.ts +4 -4
  110. package/build/src/compare/eq.js +134 -134
  111. package/build/src/compare/ge.d.ts +3 -3
  112. package/build/src/compare/ge.js +8 -8
  113. package/build/src/compare/gt.d.ts +4 -4
  114. package/build/src/compare/gt.js +107 -107
  115. package/build/src/compare/in.d.ts +4 -4
  116. package/build/src/compare/in.js +34 -34
  117. package/build/src/compare/index.d.ts +22 -22
  118. package/build/src/compare/index.js +40 -40
  119. package/build/src/compare/initial.d.ts +4 -4
  120. package/build/src/compare/initial.js +63 -63
  121. package/build/src/compare/instance_of.d.ts +2 -2
  122. package/build/src/compare/instance_of.js +7 -7
  123. package/build/src/compare/le.d.ts +3 -3
  124. package/build/src/compare/le.js +8 -8
  125. package/build/src/compare/lt.d.ts +4 -4
  126. package/build/src/compare/lt.js +8 -8
  127. package/build/src/compare/m.d.ts +3 -3
  128. package/build/src/compare/m.js +37 -37
  129. package/build/src/compare/na.d.ts +3 -3
  130. package/build/src/compare/na.js +8 -8
  131. package/build/src/compare/ne.d.ts +3 -3
  132. package/build/src/compare/ne.js +8 -8
  133. package/build/src/compare/np.d.ts +3 -3
  134. package/build/src/compare/np.js +8 -8
  135. package/build/src/compare/ns.d.ts +3 -3
  136. package/build/src/compare/ns.js +8 -8
  137. package/build/src/compare/o.d.ts +2 -2
  138. package/build/src/compare/o.js +28 -28
  139. package/build/src/compare/z.d.ts +2 -2
  140. package/build/src/compare/z.js +28 -28
  141. package/build/src/console.d.ts +7 -7
  142. package/build/src/console.js +21 -21
  143. package/build/src/context.d.ts +13 -13
  144. package/build/src/context.js +17 -17
  145. package/build/src/db/db.d.ts +55 -55
  146. package/build/src/db/db.js +2 -2
  147. package/build/src/expand_dynamic.d.ts +2 -2
  148. package/build/src/expand_dynamic.js +22 -22
  149. package/build/src/expand_in.d.ts +2 -2
  150. package/build/src/expand_in.js +24 -24
  151. package/build/src/index.d.ts +52 -52
  152. package/build/src/index.js +54 -54
  153. package/build/src/offset_length.d.ts +16 -16
  154. package/build/src/offset_length.js +78 -78
  155. package/build/src/operators/_bit_operations.d.ts +6 -6
  156. package/build/src/operators/_bit_operations.js +29 -29
  157. package/build/src/operators/_parse.d.ts +4 -4
  158. package/build/src/operators/_parse.js +45 -45
  159. package/build/src/operators/add.d.ts +4 -4
  160. package/build/src/operators/add.js +42 -42
  161. package/build/src/operators/bit-and.d.ts +2 -2
  162. package/build/src/operators/bit-and.js +18 -18
  163. package/build/src/operators/bit-not.d.ts +2 -2
  164. package/build/src/operators/bit-not.js +14 -14
  165. package/build/src/operators/bit-or.d.ts +2 -2
  166. package/build/src/operators/bit-or.js +18 -18
  167. package/build/src/operators/bit-xor.d.ts +2 -2
  168. package/build/src/operators/bit-xor.js +18 -18
  169. package/build/src/operators/concat.d.ts +4 -4
  170. package/build/src/operators/concat.js +35 -35
  171. package/build/src/operators/div.d.ts +4 -4
  172. package/build/src/operators/div.js +12 -12
  173. package/build/src/operators/divide.d.ts +4 -4
  174. package/build/src/operators/divide.js +16 -16
  175. package/build/src/operators/index.d.ts +12 -12
  176. package/build/src/operators/index.js +28 -28
  177. package/build/src/operators/minus.d.ts +4 -4
  178. package/build/src/operators/minus.js +41 -41
  179. package/build/src/operators/mod.d.ts +4 -4
  180. package/build/src/operators/mod.js +12 -12
  181. package/build/src/operators/multiply.d.ts +4 -4
  182. package/build/src/operators/multiply.js +29 -29
  183. package/build/src/operators/power.d.ts +4 -4
  184. package/build/src/operators/power.js +9 -9
  185. package/build/src/rfc.d.ts +25 -25
  186. package/build/src/rfc.js +2 -2
  187. package/build/src/statements/append.d.ts +13 -13
  188. package/build/src/statements/append.js +66 -66
  189. package/build/src/statements/assert.d.ts +1 -1
  190. package/build/src/statements/assert.js +9 -9
  191. package/build/src/statements/assign.d.ts +12 -12
  192. package/build/src/statements/assign.js +136 -136
  193. package/build/src/statements/call_function.d.ts +15 -15
  194. package/build/src/statements/call_function.js +35 -35
  195. package/build/src/statements/cast.d.ts +2 -2
  196. package/build/src/statements/cast.js +56 -56
  197. package/build/src/statements/clear.d.ts +4 -4
  198. package/build/src/statements/clear.js +7 -7
  199. package/build/src/statements/collect.d.ts +3 -3
  200. package/build/src/statements/collect.js +13 -13
  201. package/build/src/statements/commit.d.ts +1 -1
  202. package/build/src/statements/commit.js +7 -7
  203. package/build/src/statements/concatenate.d.ts +11 -11
  204. package/build/src/statements/concatenate.js +47 -47
  205. package/build/src/statements/condense.d.ts +4 -4
  206. package/build/src/statements/condense.js +15 -15
  207. package/build/src/statements/convert.d.ts +14 -14
  208. package/build/src/statements/convert.js +78 -78
  209. package/build/src/statements/create_data.d.ts +16 -16
  210. package/build/src/statements/create_data.js +154 -154
  211. package/build/src/statements/delete_database.d.ts +13 -13
  212. package/build/src/statements/delete_database.js +51 -51
  213. package/build/src/statements/delete_internal.d.ts +12 -12
  214. package/build/src/statements/delete_internal.js +106 -99
  215. package/build/src/statements/describe.d.ts +13 -13
  216. package/build/src/statements/describe.js +89 -89
  217. package/build/src/statements/find.d.ts +17 -17
  218. package/build/src/statements/find.js +173 -168
  219. package/build/src/statements/get_bit.d.ts +4 -4
  220. package/build/src/statements/get_bit.js +12 -12
  221. package/build/src/statements/get_locale.d.ts +2 -2
  222. package/build/src/statements/get_locale.js +8 -8
  223. package/build/src/statements/get_parameter.d.ts +2 -2
  224. package/build/src/statements/get_parameter.js +9 -9
  225. package/build/src/statements/get_run_time.d.ts +2 -2
  226. package/build/src/statements/get_run_time.js +16 -16
  227. package/build/src/statements/get_time.d.ts +9 -9
  228. package/build/src/statements/get_time.js +30 -30
  229. package/build/src/statements/index.d.ts +96 -96
  230. package/build/src/statements/index.js +115 -115
  231. package/build/src/statements/insert_database.d.ts +13 -13
  232. package/build/src/statements/insert_database.js +56 -56
  233. package/build/src/statements/insert_internal.d.ts +13 -13
  234. package/build/src/statements/insert_internal.js +113 -113
  235. package/build/src/statements/loop.d.ts +15 -15
  236. package/build/src/statements/loop.js +115 -115
  237. package/build/src/statements/message.d.ts +17 -17
  238. package/build/src/statements/message.js +89 -89
  239. package/build/src/statements/modify_database.d.ts +12 -12
  240. package/build/src/statements/modify_database.js +39 -39
  241. package/build/src/statements/modify_internal.d.ts +7 -7
  242. package/build/src/statements/modify_internal.js +29 -29
  243. package/build/src/statements/move_corresponding.d.ts +2 -2
  244. package/build/src/statements/move_corresponding.js +10 -10
  245. package/build/src/statements/overlay.d.ts +3 -3
  246. package/build/src/statements/overlay.js +16 -16
  247. package/build/src/statements/raise_event.d.ts +1 -1
  248. package/build/src/statements/raise_event.js +8 -8
  249. package/build/src/statements/read_report.d.ts +8 -8
  250. package/build/src/statements/read_report.js +14 -14
  251. package/build/src/statements/read_table.d.ts +22 -22
  252. package/build/src/statements/read_table.js +130 -130
  253. package/build/src/statements/replace.d.ts +13 -13
  254. package/build/src/statements/replace.js +60 -60
  255. package/build/src/statements/rollback.d.ts +1 -1
  256. package/build/src/statements/rollback.js +7 -7
  257. package/build/src/statements/select.d.ts +8 -8
  258. package/build/src/statements/select.js +77 -77
  259. package/build/src/statements/set_bit.d.ts +4 -4
  260. package/build/src/statements/set_bit.js +41 -41
  261. package/build/src/statements/set_handler.d.ts +3 -3
  262. package/build/src/statements/set_handler.js +8 -8
  263. package/build/src/statements/set_locale.d.ts +2 -2
  264. package/build/src/statements/set_locale.js +7 -7
  265. package/build/src/statements/shift.d.ts +12 -12
  266. package/build/src/statements/shift.js +113 -113
  267. package/build/src/statements/sort.d.ts +9 -9
  268. package/build/src/statements/sort.js +82 -82
  269. package/build/src/statements/split.d.ts +9 -9
  270. package/build/src/statements/split.js +38 -38
  271. package/build/src/statements/translate.d.ts +2 -2
  272. package/build/src/statements/translate.js +39 -39
  273. package/build/src/statements/update_database.d.ts +14 -14
  274. package/build/src/statements/update_database.js +53 -53
  275. package/build/src/statements/write.d.ts +17 -17
  276. package/build/src/statements/write.js +56 -56
  277. package/build/src/template_formatting.d.ts +14 -14
  278. package/build/src/template_formatting.js +82 -82
  279. package/build/src/throw_error.d.ts +1 -1
  280. package/build/src/throw_error.js +14 -14
  281. package/build/src/types/_abstract_type_data.d.ts +5 -5
  282. package/build/src/types/_abstract_type_data.js +2 -2
  283. package/build/src/types/_character.d.ts +11 -11
  284. package/build/src/types/_character.js +2 -2
  285. package/build/src/types/_date_helper.d.ts +2 -2
  286. package/build/src/types/_date_helper.js +40 -40
  287. package/build/src/types/_numeric.d.ts +5 -5
  288. package/build/src/types/_numeric.js +2 -2
  289. package/build/src/types/abap_object.d.ts +11 -11
  290. package/build/src/types/abap_object.js +32 -32
  291. package/build/src/types/character.d.ts +26 -26
  292. package/build/src/types/character.js +111 -111
  293. package/build/src/types/data_reference.d.ts +28 -28
  294. package/build/src/types/data_reference.js +88 -88
  295. package/build/src/types/date.d.ts +20 -20
  296. package/build/src/types/date.js +66 -66
  297. package/build/src/types/decfloat34.d.ts +11 -11
  298. package/build/src/types/decfloat34.js +45 -45
  299. package/build/src/types/field_symbol.d.ts +32 -32
  300. package/build/src/types/field_symbol.js +115 -115
  301. package/build/src/types/float.d.ts +15 -15
  302. package/build/src/types/float.js +74 -74
  303. package/build/src/types/hex.d.ts +20 -20
  304. package/build/src/types/hex.js +81 -81
  305. package/build/src/types/index.d.ts +17 -17
  306. package/build/src/types/index.js +33 -33
  307. package/build/src/types/integer.d.ts +15 -15
  308. package/build/src/types/integer.js +56 -56
  309. package/build/src/types/numc.d.ts +21 -21
  310. package/build/src/types/numc.js +48 -48
  311. package/build/src/types/packed.d.ts +19 -19
  312. package/build/src/types/packed.js +53 -53
  313. package/build/src/types/string.d.ts +19 -19
  314. package/build/src/types/string.js +86 -86
  315. package/build/src/types/structure.d.ts +23 -23
  316. package/build/src/types/structure.js +113 -113
  317. package/build/src/types/table.d.ts +55 -55
  318. package/build/src/types/table.js +220 -220
  319. package/build/src/types/time.d.ts +20 -20
  320. package/build/src/types/time.js +67 -67
  321. package/build/src/types/utc_long.d.ts +18 -18
  322. package/build/src/types/utc_long.js +26 -26
  323. package/build/src/types/xstring.d.ts +18 -18
  324. package/build/src/types/xstring.js +70 -70
  325. package/build/src/unit_test.d.ts +26 -26
  326. package/build/src/unit_test.js +75 -75
  327. package/package.json +2 -2
@@ -1,116 +1,116 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FieldSymbol = void 0;
4
- const table_1 = require("./table");
5
- const string_1 = require("./string");
6
- const hex_1 = require("./hex");
7
- const _parse_1 = require("../operators/_parse");
8
- const float_1 = require("./float");
9
- const data_reference_1 = require("./data_reference");
10
- class FieldSymbol {
11
- constructor(type) {
12
- this.pointer = undefined;
13
- this.casting = false;
14
- this.type = type;
15
- }
16
- getQualifiedName() {
17
- // @ts-ignore
18
- return this.type.getQualifiedName();
19
- }
20
- assign(pointer) {
21
- this.pointer = pointer;
22
- }
23
- setCasting() {
24
- this.casting = true;
25
- }
26
- unassign() {
27
- this.pointer = undefined;
28
- }
29
- isAssigned() {
30
- return this.pointer !== undefined;
31
- }
32
- getPointer() {
33
- if (this.casting) {
34
- // todo, this wont work for everything, eg changing CASTING'ed values
35
- return this.get();
36
- }
37
- return this.pointer;
38
- }
39
- dereference() {
40
- if (this.pointer instanceof data_reference_1.DataReference) {
41
- return this.pointer.getPointer();
42
- }
43
- else {
44
- return this.pointer;
45
- }
46
- }
47
- ///////////////
48
- clear() {
49
- var _a;
50
- return (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.clear();
51
- }
52
- get() {
53
- var _a, _b, _c;
54
- if (this.casting) {
55
- if (this.type instanceof hex_1.Hex) {
56
- const pt = this.pointer;
57
- if (pt instanceof float_1.Float) {
58
- const buf = Buffer.allocUnsafe(8);
59
- buf.writeDoubleLE(pt.getRaw());
60
- return buf.toString("hex").toUpperCase();
61
- }
62
- else {
63
- // @ts-ignore
64
- const ret = new string_1.String().set(Buffer.from((_a = this.pointer) === null || _a === void 0 ? void 0 : _a.get(), "utf16le").toString("hex"));
65
- return ret.get();
66
- }
67
- }
68
- else {
69
- // @ts-ignore
70
- const ret = new string_1.String().set(Buffer.from((_b = this.pointer) === null || _b === void 0 ? void 0 : _b.get(), "hex").toString("utf16le"));
71
- return ret.get();
72
- }
73
- }
74
- else {
75
- // @ts-ignore
76
- return (_c = this.pointer) === null || _c === void 0 ? void 0 : _c.get();
77
- }
78
- }
79
- appendInitial() {
80
- if (this.pointer instanceof table_1.Table) {
81
- return this.pointer.appendInitial();
82
- }
83
- return undefined;
84
- }
85
- array() {
86
- var _a;
87
- // @ts-ignore
88
- return (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.array();
89
- }
90
- set(value) {
91
- var _a;
92
- (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.set(value);
93
- return this;
94
- }
95
- getOffset(input) {
96
- if (input === null || input === void 0 ? void 0 : input.offset) {
97
- input.offset = (0, _parse_1.parse)(input.offset);
98
- }
99
- if (input === null || input === void 0 ? void 0 : input.length) {
100
- input.length = (0, _parse_1.parse)(input.length);
101
- }
102
- // Assuming we're interested in Strings here, for now...
103
- let ret = this.get();
104
- if (input === null || input === void 0 ? void 0 : input.offset) {
105
- ret = ret.substr(input.offset);
106
- }
107
- if ((input === null || input === void 0 ? void 0 : input.length) !== undefined) {
108
- ret = ret.substr(0, input.length);
109
- }
110
- const r = new string_1.String();
111
- r.set(ret);
112
- return r;
113
- }
114
- }
115
- exports.FieldSymbol = FieldSymbol;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldSymbol = void 0;
4
+ const table_1 = require("./table");
5
+ const string_1 = require("./string");
6
+ const hex_1 = require("./hex");
7
+ const _parse_1 = require("../operators/_parse");
8
+ const float_1 = require("./float");
9
+ const data_reference_1 = require("./data_reference");
10
+ class FieldSymbol {
11
+ constructor(type) {
12
+ this.pointer = undefined;
13
+ this.casting = false;
14
+ this.type = type;
15
+ }
16
+ getQualifiedName() {
17
+ // @ts-ignore
18
+ return this.type.getQualifiedName();
19
+ }
20
+ assign(pointer) {
21
+ this.pointer = pointer;
22
+ }
23
+ setCasting() {
24
+ this.casting = true;
25
+ }
26
+ unassign() {
27
+ this.pointer = undefined;
28
+ }
29
+ isAssigned() {
30
+ return this.pointer !== undefined;
31
+ }
32
+ getPointer() {
33
+ if (this.casting) {
34
+ // todo, this wont work for everything, eg changing CASTING'ed values
35
+ return this.get();
36
+ }
37
+ return this.pointer;
38
+ }
39
+ dereference() {
40
+ if (this.pointer instanceof data_reference_1.DataReference) {
41
+ return this.pointer.getPointer();
42
+ }
43
+ else {
44
+ return this.pointer;
45
+ }
46
+ }
47
+ ///////////////
48
+ clear() {
49
+ var _a;
50
+ return (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.clear();
51
+ }
52
+ get() {
53
+ var _a, _b, _c;
54
+ if (this.casting) {
55
+ if (this.type instanceof hex_1.Hex) {
56
+ const pt = this.pointer;
57
+ if (pt instanceof float_1.Float) {
58
+ const buf = Buffer.allocUnsafe(8);
59
+ buf.writeDoubleLE(pt.getRaw());
60
+ return buf.toString("hex").toUpperCase();
61
+ }
62
+ else {
63
+ // @ts-ignore
64
+ const ret = new string_1.String().set(Buffer.from((_a = this.pointer) === null || _a === void 0 ? void 0 : _a.get(), "utf16le").toString("hex"));
65
+ return ret.get();
66
+ }
67
+ }
68
+ else {
69
+ // @ts-ignore
70
+ const ret = new string_1.String().set(Buffer.from((_b = this.pointer) === null || _b === void 0 ? void 0 : _b.get(), "hex").toString("utf16le"));
71
+ return ret.get();
72
+ }
73
+ }
74
+ else {
75
+ // @ts-ignore
76
+ return (_c = this.pointer) === null || _c === void 0 ? void 0 : _c.get();
77
+ }
78
+ }
79
+ appendInitial() {
80
+ if (this.pointer instanceof table_1.Table) {
81
+ return this.pointer.appendInitial();
82
+ }
83
+ return undefined;
84
+ }
85
+ array() {
86
+ var _a;
87
+ // @ts-ignore
88
+ return (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.array();
89
+ }
90
+ set(value) {
91
+ var _a;
92
+ (_a = this.pointer) === null || _a === void 0 ? void 0 : _a.set(value);
93
+ return this;
94
+ }
95
+ getOffset(input) {
96
+ if (input === null || input === void 0 ? void 0 : input.offset) {
97
+ input.offset = (0, _parse_1.parse)(input.offset);
98
+ }
99
+ if (input === null || input === void 0 ? void 0 : input.length) {
100
+ input.length = (0, _parse_1.parse)(input.length);
101
+ }
102
+ // Assuming we're interested in Strings here, for now...
103
+ let ret = this.get();
104
+ if (input === null || input === void 0 ? void 0 : input.offset) {
105
+ ret = ret.substr(input.offset);
106
+ }
107
+ if ((input === null || input === void 0 ? void 0 : input.length) !== undefined) {
108
+ ret = ret.substr(0, input.length);
109
+ }
110
+ const r = new string_1.String();
111
+ r.set(ret);
112
+ return r;
113
+ }
114
+ }
115
+ exports.FieldSymbol = FieldSymbol;
116
116
  //# sourceMappingURL=field_symbol.js.map
@@ -1,15 +1,15 @@
1
- import { Hex } from "./hex";
2
- import { ICharacter } from "./_character";
3
- import { INumeric } from "./_numeric";
4
- export declare class Float {
5
- private value;
6
- private readonly qualifiedName;
7
- constructor(input?: {
8
- qualifiedName?: string;
9
- });
10
- getQualifiedName(): string | undefined;
11
- set(value: INumeric | ICharacter | Hex | string | number): this;
12
- clear(): void;
13
- getRaw(): number;
14
- get(): string;
15
- }
1
+ import { Hex } from "./hex";
2
+ import { ICharacter } from "./_character";
3
+ import { INumeric } from "./_numeric";
4
+ export declare class Float {
5
+ private value;
6
+ private readonly qualifiedName;
7
+ constructor(input?: {
8
+ qualifiedName?: string;
9
+ });
10
+ getQualifiedName(): string | undefined;
11
+ set(value: INumeric | ICharacter | Hex | string | number): this;
12
+ clear(): void;
13
+ getRaw(): number;
14
+ get(): string;
15
+ }
@@ -1,75 +1,75 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Float = void 0;
4
- const hex_1 = require("./hex");
5
- const xstring_1 = require("./xstring");
6
- /*
7
- function getNumberParts(x: number) {
8
- if(isNaN(x)) {
9
- throw "Float NaN";
10
- }
11
- const sig = x > 0 ? 1 : -1;
12
- if (!isFinite(x)) {
13
- throw "Float not finite";
14
- }
15
- x = Math.abs(x);
16
- const exp = Math.floor(Math.log(x) * Math.LOG2E) - 52;
17
- const man = x / Math.pow(2, exp);
18
- return {mantissa: sig * man, exponent: exp};
19
- }
20
- */
21
- class Float {
22
- constructor(input) {
23
- this.value = 0;
24
- this.qualifiedName = input === null || input === void 0 ? void 0 : input.qualifiedName;
25
- }
26
- getQualifiedName() {
27
- return this.qualifiedName;
28
- }
29
- set(value) {
30
- if (typeof value === "number") {
31
- this.value = value;
32
- }
33
- else if (typeof value === "string" && value.trim().length === 0) {
34
- this.value = 0;
35
- }
36
- else if (typeof value === "string") {
37
- this.value = parseFloat(value);
38
- }
39
- else if (value instanceof Float) {
40
- this.value = value.getRaw();
41
- }
42
- else if (value instanceof hex_1.Hex || value instanceof xstring_1.XString) {
43
- // todo, how/if should this work?
44
- this.set(parseInt(value.get(), 16));
45
- }
46
- else {
47
- this.set(value.get());
48
- }
49
- return this;
50
- }
51
- clear() {
52
- this.value = 0;
53
- }
54
- getRaw() {
55
- return this.value;
56
- }
57
- get() {
58
- let text = new Number(this.value).toExponential(16);
59
- text = text.replace(".", ",");
60
- if (text.includes("e+")) {
61
- const split = text.split("e+");
62
- const mantissa = split[0];
63
- const exponent = split[1].padStart(2, "0");
64
- return mantissa + "E+" + exponent;
65
- }
66
- else {
67
- const split = text.split("e-");
68
- const mantissa = split[0];
69
- const exponent = split[1].padStart(2, "0");
70
- return mantissa + "E-" + exponent;
71
- }
72
- }
73
- }
74
- exports.Float = Float;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Float = void 0;
4
+ const hex_1 = require("./hex");
5
+ const xstring_1 = require("./xstring");
6
+ /*
7
+ function getNumberParts(x: number) {
8
+ if(isNaN(x)) {
9
+ throw "Float NaN";
10
+ }
11
+ const sig = x > 0 ? 1 : -1;
12
+ if (!isFinite(x)) {
13
+ throw "Float not finite";
14
+ }
15
+ x = Math.abs(x);
16
+ const exp = Math.floor(Math.log(x) * Math.LOG2E) - 52;
17
+ const man = x / Math.pow(2, exp);
18
+ return {mantissa: sig * man, exponent: exp};
19
+ }
20
+ */
21
+ class Float {
22
+ constructor(input) {
23
+ this.value = 0;
24
+ this.qualifiedName = input === null || input === void 0 ? void 0 : input.qualifiedName;
25
+ }
26
+ getQualifiedName() {
27
+ return this.qualifiedName;
28
+ }
29
+ set(value) {
30
+ if (typeof value === "number") {
31
+ this.value = value;
32
+ }
33
+ else if (typeof value === "string" && value.trim().length === 0) {
34
+ this.value = 0;
35
+ }
36
+ else if (typeof value === "string") {
37
+ this.value = parseFloat(value);
38
+ }
39
+ else if (value instanceof Float) {
40
+ this.value = value.getRaw();
41
+ }
42
+ else if (value instanceof hex_1.Hex || value instanceof xstring_1.XString) {
43
+ // todo, how/if should this work?
44
+ this.set(parseInt(value.get(), 16));
45
+ }
46
+ else {
47
+ this.set(value.get());
48
+ }
49
+ return this;
50
+ }
51
+ clear() {
52
+ this.value = 0;
53
+ }
54
+ getRaw() {
55
+ return this.value;
56
+ }
57
+ get() {
58
+ let text = new Number(this.value).toExponential(16);
59
+ text = text.replace(".", ",");
60
+ if (text.includes("e+")) {
61
+ const split = text.split("e+");
62
+ const mantissa = split[0];
63
+ const exponent = split[1].padStart(2, "0");
64
+ return mantissa + "E+" + exponent;
65
+ }
66
+ else {
67
+ const split = text.split("e-");
68
+ const mantissa = split[0];
69
+ const exponent = split[1].padStart(2, "0");
70
+ return mantissa + "E-" + exponent;
71
+ }
72
+ }
73
+ }
74
+ exports.Float = Float;
75
75
  //# sourceMappingURL=float.js.map
@@ -1,20 +1,20 @@
1
- import { Float } from "./float";
2
- import { Integer } from "./integer";
3
- import { XString } from "./xstring";
4
- import { ICharacter } from "./_character";
5
- import { INumeric } from "./_numeric";
6
- export declare class Hex implements ICharacter {
7
- private value;
8
- private readonly length;
9
- constructor(input?: {
10
- length?: number;
11
- });
12
- set(value: ICharacter | INumeric | string | number | Integer | Float): this;
13
- getLength(): number;
14
- clear(): void;
15
- get(): string;
16
- getOffset(input: {
17
- offset?: number | INumeric | Hex;
18
- length?: number | INumeric | Hex;
19
- }): XString;
20
- }
1
+ import { Float } from "./float";
2
+ import { Integer } from "./integer";
3
+ import { XString } from "./xstring";
4
+ import { ICharacter } from "./_character";
5
+ import { INumeric } from "./_numeric";
6
+ export declare class Hex implements ICharacter {
7
+ private value;
8
+ private readonly length;
9
+ constructor(input?: {
10
+ length?: number;
11
+ });
12
+ set(value: ICharacter | INumeric | string | number | Integer | Float): this;
13
+ getLength(): number;
14
+ clear(): void;
15
+ get(): string;
16
+ getOffset(input: {
17
+ offset?: number | INumeric | Hex;
18
+ length?: number | INumeric | Hex;
19
+ }): XString;
20
+ }
@@ -1,82 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Hex = void 0;
4
- const _parse_1 = require("../operators/_parse");
5
- const float_1 = require("./float");
6
- const xstring_1 = require("./xstring");
7
- class Hex {
8
- constructor(input) {
9
- this.length = (input === null || input === void 0 ? void 0 : input.length) ? input === null || input === void 0 ? void 0 : input.length : 1;
10
- this.value = "0".repeat(this.length * 2);
11
- }
12
- set(value) {
13
- if (typeof value === "string") {
14
- this.value = value;
15
- }
16
- else if (typeof value === "number") {
17
- if (value < 0) {
18
- const maxVal = Math.pow(2, this.length * 8);
19
- this.value = Math.round(value + maxVal).toString(16);
20
- }
21
- else {
22
- this.value = Math.round(value).toString(16);
23
- }
24
- this.value = this.value.padStart(this.length * 2, "0");
25
- }
26
- else {
27
- let v = value.get();
28
- if (value instanceof float_1.Float) {
29
- v = value.getRaw();
30
- this.set(v);
31
- }
32
- else if (typeof v === "number") {
33
- this.set(v);
34
- }
35
- else {
36
- this.value = v;
37
- if (this.value.match(/^(?![A-F0-9])/)) {
38
- this.value = "";
39
- }
40
- }
41
- }
42
- if (this.value.length > this.length * 2) {
43
- this.value = this.value.substr(0, this.length * 2);
44
- }
45
- if (this.value.length < this.length * 2) {
46
- this.value = this.value.padEnd(this.length * 2, "0");
47
- }
48
- this.value = this.value.toUpperCase();
49
- return this;
50
- }
51
- getLength() {
52
- return this.length;
53
- }
54
- clear() {
55
- this.value = "";
56
- }
57
- get() {
58
- return this.value;
59
- }
60
- getOffset(input) {
61
- if (input === null || input === void 0 ? void 0 : input.offset) {
62
- input.offset = (0, _parse_1.parse)(input.offset);
63
- }
64
- if (input === null || input === void 0 ? void 0 : input.length) {
65
- input.length = (0, _parse_1.parse)(input.length);
66
- }
67
- let ret = this.value;
68
- if (input === null || input === void 0 ? void 0 : input.offset) {
69
- // @ts-ignore
70
- ret = ret.substr(input.offset * 2);
71
- }
72
- if ((input === null || input === void 0 ? void 0 : input.length) !== undefined) {
73
- // @ts-ignore
74
- ret = ret.substr(0, input.length * 2);
75
- }
76
- const r = new xstring_1.XString();
77
- r.set(ret);
78
- return r;
79
- }
80
- }
81
- exports.Hex = Hex;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hex = void 0;
4
+ const _parse_1 = require("../operators/_parse");
5
+ const float_1 = require("./float");
6
+ const xstring_1 = require("./xstring");
7
+ class Hex {
8
+ constructor(input) {
9
+ this.length = (input === null || input === void 0 ? void 0 : input.length) ? input === null || input === void 0 ? void 0 : input.length : 1;
10
+ this.value = "0".repeat(this.length * 2);
11
+ }
12
+ set(value) {
13
+ if (typeof value === "string") {
14
+ this.value = value;
15
+ }
16
+ else if (typeof value === "number") {
17
+ if (value < 0) {
18
+ const maxVal = Math.pow(2, this.length * 8);
19
+ this.value = Math.round(value + maxVal).toString(16);
20
+ }
21
+ else {
22
+ this.value = Math.round(value).toString(16);
23
+ }
24
+ this.value = this.value.padStart(this.length * 2, "0");
25
+ }
26
+ else {
27
+ let v = value.get();
28
+ if (value instanceof float_1.Float) {
29
+ v = value.getRaw();
30
+ this.set(v);
31
+ }
32
+ else if (typeof v === "number") {
33
+ this.set(v);
34
+ }
35
+ else {
36
+ this.value = v;
37
+ if (this.value.match(/^(?![A-F0-9])/)) {
38
+ this.value = "";
39
+ }
40
+ }
41
+ }
42
+ if (this.value.length > this.length * 2) {
43
+ this.value = this.value.substr(0, this.length * 2);
44
+ }
45
+ if (this.value.length < this.length * 2) {
46
+ this.value = this.value.padEnd(this.length * 2, "0");
47
+ }
48
+ this.value = this.value.toUpperCase();
49
+ return this;
50
+ }
51
+ getLength() {
52
+ return this.length;
53
+ }
54
+ clear() {
55
+ this.value = "";
56
+ }
57
+ get() {
58
+ return this.value;
59
+ }
60
+ getOffset(input) {
61
+ if (input === null || input === void 0 ? void 0 : input.offset) {
62
+ input.offset = (0, _parse_1.parse)(input.offset);
63
+ }
64
+ if (input === null || input === void 0 ? void 0 : input.length) {
65
+ input.length = (0, _parse_1.parse)(input.length);
66
+ }
67
+ let ret = this.value;
68
+ if (input === null || input === void 0 ? void 0 : input.offset) {
69
+ // @ts-ignore
70
+ ret = ret.substr(input.offset * 2);
71
+ }
72
+ if ((input === null || input === void 0 ? void 0 : input.length) !== undefined) {
73
+ // @ts-ignore
74
+ ret = ret.substr(0, input.length * 2);
75
+ }
76
+ const r = new xstring_1.XString();
77
+ r.set(ret);
78
+ return r;
79
+ }
80
+ }
81
+ exports.Hex = Hex;
82
82
  //# sourceMappingURL=hex.js.map
@@ -1,17 +1,17 @@
1
- export * from "./abap_object";
2
- export * from "./character";
3
- export * from "./data_reference";
4
- export * from "./date";
5
- export * from "./decfloat34";
6
- export * from "./field_symbol";
7
- export * from "./float";
8
- export * from "./hex";
9
- export * from "./integer";
10
- export * from "./numc";
11
- export * from "./packed";
12
- export * from "./string";
13
- export * from "./structure";
14
- export * from "./table";
15
- export * from "./time";
16
- export * from "./utc_long";
17
- export * from "./xstring";
1
+ export * from "./abap_object";
2
+ export * from "./character";
3
+ export * from "./data_reference";
4
+ export * from "./date";
5
+ export * from "./decfloat34";
6
+ export * from "./field_symbol";
7
+ export * from "./float";
8
+ export * from "./hex";
9
+ export * from "./integer";
10
+ export * from "./numc";
11
+ export * from "./packed";
12
+ export * from "./string";
13
+ export * from "./structure";
14
+ export * from "./table";
15
+ export * from "./time";
16
+ export * from "./utc_long";
17
+ export * from "./xstring";