@abaplint/runtime 2.5.37 → 2.5.39

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,34 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cs = void 0;
4
- function cs(left, right) {
5
- let l = "";
6
- if (typeof left === "number" || typeof left === "string") {
7
- l = left.toString();
8
- }
9
- else {
10
- l = left.get().toString();
11
- }
12
- l = l.toUpperCase();
13
- let r = "";
14
- if (typeof right === "string") {
15
- r = right.toString();
16
- }
17
- else {
18
- r = right.get().toString();
19
- }
20
- r = r.toUpperCase();
21
- const index = l.indexOf(r);
22
- if (index < 0) {
23
- // @ts-ignore
24
- abap.builtin.sy.get().fdpos.set(l.length);
25
- return false;
26
- }
27
- else {
28
- // @ts-ignore
29
- abap.builtin.sy.get().fdpos.set(index);
30
- return true;
31
- }
32
- }
33
- exports.cs = cs;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cs = void 0;
4
+ function cs(left, right) {
5
+ let l = "";
6
+ if (typeof left === "number" || typeof left === "string") {
7
+ l = left.toString();
8
+ }
9
+ else {
10
+ l = left.get().toString();
11
+ }
12
+ l = l.toUpperCase();
13
+ let r = "";
14
+ if (typeof right === "string") {
15
+ r = right.toString();
16
+ }
17
+ else {
18
+ r = right.get().toString();
19
+ }
20
+ r = r.toUpperCase();
21
+ const index = l.indexOf(r);
22
+ if (index < 0) {
23
+ // @ts-ignore
24
+ abap.builtin.sy.get().fdpos.set(l.length);
25
+ return false;
26
+ }
27
+ else {
28
+ // @ts-ignore
29
+ abap.builtin.sy.get().fdpos.set(index);
30
+ return true;
31
+ }
32
+ }
33
+ exports.cs = cs;
34
34
  //# sourceMappingURL=cs.js.map
@@ -1,4 +1,4 @@
1
- import { ABAPObject, FieldSymbol, Float, Hex, Structure, Table } from "../types";
2
- import { ICharacter } from "../types/_character";
3
- import { INumeric } from "../types/_numeric";
4
- export declare function eq(left: number | string | ICharacter | INumeric | Float | ABAPObject | Structure | Hex | Table | FieldSymbol, right: number | string | ICharacter | INumeric | Float | ABAPObject | Structure | Hex | Table | FieldSymbol): boolean;
1
+ import { ABAPObject, FieldSymbol, Float, Hex, Structure, Table } from "../types";
2
+ import { ICharacter } from "../types/_character";
3
+ import { INumeric } from "../types/_numeric";
4
+ export declare function eq(left: number | string | ICharacter | INumeric | Float | ABAPObject | Structure | Hex | Table | FieldSymbol, right: number | string | ICharacter | INumeric | Float | ABAPObject | Structure | Hex | Table | FieldSymbol): boolean;
@@ -1,135 +1,135 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.eq = void 0;
4
- const types_1 = require("../types");
5
- function compareTables(left, right) {
6
- const leftArray = left.array();
7
- const rightArray = right.array();
8
- if (leftArray.length !== rightArray.length) {
9
- return false;
10
- }
11
- for (let i = 0; i < leftArray.length; i++) {
12
- const rowCompare = eq(leftArray[i], rightArray[i]);
13
- if (rowCompare === false) {
14
- return false;
15
- }
16
- }
17
- return true;
18
- }
19
- function eq(left, right) {
20
- /*
21
- console.dir(left);
22
- console.dir(right);
23
- */
24
- if (right instanceof types_1.FieldSymbol) {
25
- return eq(left, right.getPointer());
26
- }
27
- else if (left instanceof types_1.FieldSymbol) {
28
- return eq(left.getPointer(), right);
29
- }
30
- if (left instanceof types_1.Table || right instanceof types_1.Table) {
31
- if (left instanceof types_1.Table && right instanceof types_1.Table) {
32
- return compareTables(left, right);
33
- }
34
- else {
35
- // this happens in dynamic/ANY typed scenarios?
36
- return false;
37
- }
38
- }
39
- if (left instanceof types_1.Structure || right instanceof types_1.Structure) {
40
- if (!(right instanceof types_1.Structure)) {
41
- return eq(left.getCharacter(), right);
42
- }
43
- if (!(left instanceof types_1.Structure)) {
44
- return eq(left, right.getCharacter());
45
- }
46
- const l = left.get();
47
- const r = right.get();
48
- const leftKeys = Object.keys(l);
49
- const rightKeys = Object.keys(r);
50
- if (leftKeys.length !== rightKeys.length) {
51
- return false;
52
- }
53
- for (const k of leftKeys) {
54
- const e = eq(l[k], r[k]);
55
- if (e === false) {
56
- return false;
57
- }
58
- }
59
- return true;
60
- }
61
- let l = undefined;
62
- if (left instanceof types_1.Character) {
63
- l = left.getTrimEnd();
64
- }
65
- else if (typeof left === "object") {
66
- l = left.get();
67
- }
68
- else {
69
- l = left;
70
- }
71
- let r = undefined;
72
- if (right instanceof types_1.Character) {
73
- r = right.getTrimEnd();
74
- }
75
- else if (typeof right === "object") {
76
- r = right.get();
77
- }
78
- else {
79
- r = right;
80
- }
81
- if (right instanceof types_1.Hex && typeof l === "number") {
82
- r = parseInt(right.get(), 16);
83
- }
84
- else if (left instanceof types_1.Hex && typeof r === "number") {
85
- l = parseInt(left.get(), 16);
86
- }
87
- if (right instanceof types_1.Float && left instanceof types_1.Float) {
88
- r = right.getRaw();
89
- l = left.getRaw();
90
- }
91
- else if (right instanceof types_1.Float && typeof l === "number") {
92
- r = right.getRaw();
93
- }
94
- else if (left instanceof types_1.Float) {
95
- if (typeof r === "number") {
96
- l = left.getRaw();
97
- }
98
- else if (typeof r === "string") {
99
- l = left.getRaw();
100
- r = Number(r);
101
- }
102
- }
103
- if (right instanceof types_1.Numc && left instanceof types_1.Integer) {
104
- l = left.get();
105
- r = parseInt(right.get(), 10);
106
- }
107
- else if (right instanceof types_1.Integer && left instanceof types_1.Numc) {
108
- r = right.get();
109
- l = parseInt(left.get(), 10);
110
- }
111
- // assumption: typically no casts are required, so start checking if the types doesnt match
112
- if (typeof l !== typeof r) {
113
- if (typeof l === "string" && typeof r === "number") {
114
- r = r.toString();
115
- }
116
- else if (typeof l === "number" && typeof r === "string") {
117
- if (r === "") {
118
- r = 0;
119
- }
120
- else if (r.includes(".")) {
121
- r = parseFloat(r);
122
- }
123
- else {
124
- r = parseInt(r, 10);
125
- }
126
- }
127
- }
128
- /*
129
- console.dir(l);
130
- console.dir(r);
131
- */
132
- return l === r;
133
- }
134
- exports.eq = eq;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.eq = void 0;
4
+ const types_1 = require("../types");
5
+ function compareTables(left, right) {
6
+ const leftArray = left.array();
7
+ const rightArray = right.array();
8
+ if (leftArray.length !== rightArray.length) {
9
+ return false;
10
+ }
11
+ for (let i = 0; i < leftArray.length; i++) {
12
+ const rowCompare = eq(leftArray[i], rightArray[i]);
13
+ if (rowCompare === false) {
14
+ return false;
15
+ }
16
+ }
17
+ return true;
18
+ }
19
+ function eq(left, right) {
20
+ /*
21
+ console.dir(left);
22
+ console.dir(right);
23
+ */
24
+ if (right instanceof types_1.FieldSymbol) {
25
+ return eq(left, right.getPointer());
26
+ }
27
+ else if (left instanceof types_1.FieldSymbol) {
28
+ return eq(left.getPointer(), right);
29
+ }
30
+ if (left instanceof types_1.Table || right instanceof types_1.Table) {
31
+ if (left instanceof types_1.Table && right instanceof types_1.Table) {
32
+ return compareTables(left, right);
33
+ }
34
+ else {
35
+ // this happens in dynamic/ANY typed scenarios?
36
+ return false;
37
+ }
38
+ }
39
+ if (left instanceof types_1.Structure || right instanceof types_1.Structure) {
40
+ if (!(right instanceof types_1.Structure)) {
41
+ return eq(left.getCharacter(), right);
42
+ }
43
+ if (!(left instanceof types_1.Structure)) {
44
+ return eq(left, right.getCharacter());
45
+ }
46
+ const l = left.get();
47
+ const r = right.get();
48
+ const leftKeys = Object.keys(l);
49
+ const rightKeys = Object.keys(r);
50
+ if (leftKeys.length !== rightKeys.length) {
51
+ return false;
52
+ }
53
+ for (const k of leftKeys) {
54
+ const e = eq(l[k], r[k]);
55
+ if (e === false) {
56
+ return false;
57
+ }
58
+ }
59
+ return true;
60
+ }
61
+ let l = undefined;
62
+ if (left instanceof types_1.Character) {
63
+ l = left.getTrimEnd();
64
+ }
65
+ else if (typeof left === "object") {
66
+ l = left.get();
67
+ }
68
+ else {
69
+ l = left;
70
+ }
71
+ let r = undefined;
72
+ if (right instanceof types_1.Character) {
73
+ r = right.getTrimEnd();
74
+ }
75
+ else if (typeof right === "object") {
76
+ r = right.get();
77
+ }
78
+ else {
79
+ r = right;
80
+ }
81
+ if (right instanceof types_1.Hex && typeof l === "number") {
82
+ r = parseInt(right.get(), 16);
83
+ }
84
+ else if (left instanceof types_1.Hex && typeof r === "number") {
85
+ l = parseInt(left.get(), 16);
86
+ }
87
+ if (right instanceof types_1.Float && left instanceof types_1.Float) {
88
+ r = right.getRaw();
89
+ l = left.getRaw();
90
+ }
91
+ else if (right instanceof types_1.Float && typeof l === "number") {
92
+ r = right.getRaw();
93
+ }
94
+ else if (left instanceof types_1.Float) {
95
+ if (typeof r === "number") {
96
+ l = left.getRaw();
97
+ }
98
+ else if (typeof r === "string") {
99
+ l = left.getRaw();
100
+ r = Number(r);
101
+ }
102
+ }
103
+ if (right instanceof types_1.Numc && left instanceof types_1.Integer) {
104
+ l = left.get();
105
+ r = parseInt(right.get(), 10);
106
+ }
107
+ else if (right instanceof types_1.Integer && left instanceof types_1.Numc) {
108
+ r = right.get();
109
+ l = parseInt(left.get(), 10);
110
+ }
111
+ // assumption: typically no casts are required, so start checking if the types doesnt match
112
+ if (typeof l !== typeof r) {
113
+ if (typeof l === "string" && typeof r === "number") {
114
+ r = r.toString();
115
+ }
116
+ else if (typeof l === "number" && typeof r === "string") {
117
+ if (r === "") {
118
+ r = 0;
119
+ }
120
+ else if (r.includes(".")) {
121
+ r = parseFloat(r);
122
+ }
123
+ else {
124
+ r = parseInt(r, 10);
125
+ }
126
+ }
127
+ }
128
+ /*
129
+ console.dir(l);
130
+ console.dir(r);
131
+ */
132
+ return l === r;
133
+ }
134
+ exports.eq = eq;
135
135
  //# sourceMappingURL=eq.js.map
@@ -1,3 +1,3 @@
1
- import { ICharacter } from "../types/_character";
2
- import { INumeric } from "../types/_numeric";
3
- export declare function ge(left: number | string | ICharacter | INumeric, right: number | string | ICharacter | INumeric): boolean;
1
+ import { ICharacter } from "../types/_character";
2
+ import { INumeric } from "../types/_numeric";
3
+ export declare function ge(left: number | string | ICharacter | INumeric, right: number | string | ICharacter | INumeric): boolean;
@@ -1,9 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ge = void 0;
4
- const _1 = require(".");
5
- function ge(left, right) {
6
- return (0, _1.gt)(left, right) || (0, _1.eq)(left, right);
7
- }
8
- exports.ge = ge;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ge = void 0;
4
+ const _1 = require(".");
5
+ function ge(left, right) {
6
+ return (0, _1.gt)(left, right) || (0, _1.eq)(left, right);
7
+ }
8
+ exports.ge = ge;
9
9
  //# sourceMappingURL=ge.js.map
@@ -1,4 +1,4 @@
1
- import { ABAPObject, Structure, Table } from "../types";
2
- import { ICharacter } from "../types/_character";
3
- import { INumeric } from "../types/_numeric";
4
- export declare function gt(left: number | string | ICharacter | INumeric | ABAPObject | Structure | Table, right: number | string | ICharacter | INumeric | ABAPObject | Structure | Table): boolean;
1
+ import { ABAPObject, Structure, Table } from "../types";
2
+ import { ICharacter } from "../types/_character";
3
+ import { INumeric } from "../types/_numeric";
4
+ export declare function gt(left: number | string | ICharacter | INumeric | ABAPObject | Structure | Table, right: number | string | ICharacter | INumeric | ABAPObject | Structure | Table): boolean;
@@ -1,108 +1,108 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gt = void 0;
4
- const types_1 = require("../types");
5
- const integer_1 = require("../types/integer");
6
- function gt(left, right) {
7
- if (left instanceof types_1.FieldSymbol) {
8
- if (left.getPointer() === undefined) {
9
- throw new Error("GETWA_NOT_ASSIGNED");
10
- }
11
- return gt(left.getPointer(), right);
12
- }
13
- else if (right instanceof types_1.FieldSymbol) {
14
- if (right.getPointer() === undefined) {
15
- throw new Error("GETWA_NOT_ASSIGNED");
16
- }
17
- return gt(left, right.getPointer());
18
- }
19
- if (left instanceof types_1.Table || right instanceof types_1.Table) {
20
- throw "runtime_todo, gt TABLE";
21
- }
22
- if (left instanceof types_1.Hex || right instanceof types_1.Hex) {
23
- return gt_with_hex(left, right);
24
- }
25
- let l = undefined;
26
- if (typeof left === "number" || typeof left === "string") {
27
- l = left;
28
- }
29
- else if (left instanceof types_1.Float || left instanceof types_1.DecFloat34) {
30
- l = left.getRaw();
31
- }
32
- else {
33
- l = left.get();
34
- }
35
- let r = undefined;
36
- if (typeof right === "number" || typeof right === "string") {
37
- r = right;
38
- }
39
- else if (right instanceof types_1.Float || right instanceof types_1.DecFloat34) {
40
- r = right.getRaw();
41
- }
42
- else {
43
- r = right.get();
44
- }
45
- if (typeof l === "string" && typeof r === "number") {
46
- if (l === "") {
47
- l = 0;
48
- }
49
- else {
50
- l = parseInt(l, 10);
51
- }
52
- }
53
- else if (typeof l === "number" && typeof r === "string") {
54
- if (r === "") {
55
- r = 0;
56
- }
57
- else {
58
- r = parseInt(r, 10);
59
- }
60
- }
61
- if (l === undefined) {
62
- return true; // todo, not sure this is correct
63
- }
64
- if (r === undefined) {
65
- return true; // todo, not sure this is correct
66
- }
67
- return l > r;
68
- }
69
- exports.gt = gt;
70
- function gt_with_hex(left, right) {
71
- const left_hex = get_hex_from_parameter(left);
72
- const right_hex = get_hex_from_parameter(right);
73
- return left_hex > right_hex;
74
- }
75
- function get_hex_from_parameter(comparison_part) {
76
- let hex_from_parameter = "";
77
- switch (typeof comparison_part) {
78
- case "number":
79
- hex_from_parameter = comparison_part.toString(16);
80
- break;
81
- case "string":
82
- hex_from_parameter = comparison_part.split("")
83
- .map(c => c.charCodeAt(0).toString(16).padStart(2, "0"))
84
- .join("");
85
- break;
86
- case "object":
87
- if (comparison_part instanceof types_1.Hex) {
88
- hex_from_parameter = comparison_part.get();
89
- }
90
- else if (comparison_part instanceof integer_1.Integer) {
91
- hex_from_parameter = comparison_part.get().toString(16).toUpperCase();
92
- if (hex_from_parameter.length % 2 === 1) {
93
- hex_from_parameter = "0" + hex_from_parameter;
94
- }
95
- }
96
- else if (comparison_part instanceof types_1.XString) {
97
- hex_from_parameter = comparison_part.get();
98
- }
99
- else {
100
- throw "runtime_todo, gt hex1";
101
- }
102
- break;
103
- default:
104
- throw "runtime_todo, gt hex2";
105
- }
106
- return hex_from_parameter;
107
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gt = void 0;
4
+ const types_1 = require("../types");
5
+ const integer_1 = require("../types/integer");
6
+ function gt(left, right) {
7
+ if (left instanceof types_1.FieldSymbol) {
8
+ if (left.getPointer() === undefined) {
9
+ throw new Error("GETWA_NOT_ASSIGNED");
10
+ }
11
+ return gt(left.getPointer(), right);
12
+ }
13
+ else if (right instanceof types_1.FieldSymbol) {
14
+ if (right.getPointer() === undefined) {
15
+ throw new Error("GETWA_NOT_ASSIGNED");
16
+ }
17
+ return gt(left, right.getPointer());
18
+ }
19
+ if (left instanceof types_1.Table || right instanceof types_1.Table) {
20
+ throw "runtime_todo, gt TABLE";
21
+ }
22
+ if (left instanceof types_1.Hex || right instanceof types_1.Hex) {
23
+ return gt_with_hex(left, right);
24
+ }
25
+ let l = undefined;
26
+ if (typeof left === "number" || typeof left === "string") {
27
+ l = left;
28
+ }
29
+ else if (left instanceof types_1.Float || left instanceof types_1.DecFloat34) {
30
+ l = left.getRaw();
31
+ }
32
+ else {
33
+ l = left.get();
34
+ }
35
+ let r = undefined;
36
+ if (typeof right === "number" || typeof right === "string") {
37
+ r = right;
38
+ }
39
+ else if (right instanceof types_1.Float || right instanceof types_1.DecFloat34) {
40
+ r = right.getRaw();
41
+ }
42
+ else {
43
+ r = right.get();
44
+ }
45
+ if (typeof l === "string" && typeof r === "number") {
46
+ if (l === "") {
47
+ l = 0;
48
+ }
49
+ else {
50
+ l = parseInt(l, 10);
51
+ }
52
+ }
53
+ else if (typeof l === "number" && typeof r === "string") {
54
+ if (r === "") {
55
+ r = 0;
56
+ }
57
+ else {
58
+ r = parseInt(r, 10);
59
+ }
60
+ }
61
+ if (l === undefined) {
62
+ return true; // todo, not sure this is correct
63
+ }
64
+ if (r === undefined) {
65
+ return true; // todo, not sure this is correct
66
+ }
67
+ return l > r;
68
+ }
69
+ exports.gt = gt;
70
+ function gt_with_hex(left, right) {
71
+ const left_hex = get_hex_from_parameter(left);
72
+ const right_hex = get_hex_from_parameter(right);
73
+ return left_hex > right_hex;
74
+ }
75
+ function get_hex_from_parameter(comparison_part) {
76
+ let hex_from_parameter = "";
77
+ switch (typeof comparison_part) {
78
+ case "number":
79
+ hex_from_parameter = comparison_part.toString(16);
80
+ break;
81
+ case "string":
82
+ hex_from_parameter = comparison_part.split("")
83
+ .map(c => c.charCodeAt(0).toString(16).padStart(2, "0"))
84
+ .join("");
85
+ break;
86
+ case "object":
87
+ if (comparison_part instanceof types_1.Hex) {
88
+ hex_from_parameter = comparison_part.get();
89
+ }
90
+ else if (comparison_part instanceof integer_1.Integer) {
91
+ hex_from_parameter = comparison_part.get().toString(16).toUpperCase();
92
+ if (hex_from_parameter.length % 2 === 1) {
93
+ hex_from_parameter = "0" + hex_from_parameter;
94
+ }
95
+ }
96
+ else if (comparison_part instanceof types_1.XString) {
97
+ hex_from_parameter = comparison_part.get();
98
+ }
99
+ else {
100
+ throw "runtime_todo, gt hex1";
101
+ }
102
+ break;
103
+ default:
104
+ throw "runtime_todo, gt hex2";
105
+ }
106
+ return hex_from_parameter;
107
+ }
108
108
  //# sourceMappingURL=gt.js.map
@@ -1,4 +1,4 @@
1
- import { Table } from "../types";
2
- import { ICharacter } from "../types/_character";
3
- import { INumeric } from "../types/_numeric";
4
- export declare function compareIn(left: number | string | ICharacter | INumeric, right: Table): boolean;
1
+ import { Table } from "../types";
2
+ import { ICharacter } from "../types/_character";
3
+ import { INumeric } from "../types/_numeric";
4
+ export declare function compareIn(left: number | string | ICharacter | INumeric, right: Table): boolean;