@abaplint/transpiler-cli 2.6.21 → 2.6.22

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 (2) hide show
  1. package/build/bundle.js +189 -73
  2. package/package.json +3 -3
package/build/bundle.js CHANGED
@@ -12686,7 +12686,9 @@ class Message {
12686
12686
  const mwith = (0, combi_1.seq)("WITH", s, (0, combi_1.opt)(sourc));
12687
12687
  const foo = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.opt)(options), (0, combi_1.opt)(mwith));
12688
12688
  const text = (0, combi_1.seq)(s, type, (0, combi_1.optPrio)(like), (0, combi_1.optPrio)(raising));
12689
- const cloud = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))), into);
12689
+ const cloud1 = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))), (0, combi_1.altPrio)(into, raising));
12690
+ const cloud2 = (0, combi_1.seq)((0, combi_1.altPrio)(into, raising), (0, combi_1.opt)((0, combi_1.seq)("WITH", expressions_1.Source, (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)(expressions_1.Source))));
12691
+ const cloud = (0, combi_1.seq)(expressions_1.MessageSource, (0, combi_1.alt)(cloud1, cloud2));
12690
12692
  const ret = (0, combi_1.seq)("MESSAGE", (0, combi_1.altPrio)((0, combi_1.verNot)(version_1.Version.Cloud, foo), (0, combi_1.verNot)(version_1.Version.Cloud, text), (0, combi_1.ver)(version_1.Version.Cloud, cloud)));
12691
12693
  return ret;
12692
12694
  }
@@ -18353,75 +18355,149 @@ class BuiltIn {
18353
18355
  /////////////////////////////
18354
18356
  buildSY() {
18355
18357
  const components = [];
18356
- components.push({ name: "abcde", type: new basic_1.CharacterType(26, { qualifiedName: "sy-abcde" }) });
18357
- components.push({ name: "batch", type: new basic_1.CharacterType(1, { qualifiedName: "sy-batch" }) });
18358
- components.push({ name: "binpt", type: new basic_1.CharacterType(1, { qualifiedName: "sy-binpt" }) });
18359
- components.push({ name: "calld", type: new basic_1.CharacterType(1, { qualifiedName: "sy-calld" }) });
18360
- components.push({ name: "callr", type: new basic_1.CharacterType(8, { qualifiedName: "sy-callr" }) });
18361
- components.push({ name: "colno", type: new basic_1.IntegerType() });
18362
- components.push({ name: "cpage", type: new basic_1.IntegerType() });
18363
- components.push({ name: "cprog", type: new basic_1.CharacterType(40, { qualifiedName: "sy-cprog" }) });
18364
- components.push({ name: "cucol", type: new basic_1.IntegerType() });
18365
- components.push({ name: "curow", type: new basic_1.IntegerType() });
18366
- components.push({ name: "datar", type: new basic_1.CharacterType(1, { qualifiedName: "sy-datar" }) });
18367
- components.push({ name: "datlo", type: new basic_1.DateType() });
18368
- components.push({ name: "datum", type: new basic_1.DateType() });
18369
- components.push({ name: "dayst", type: new basic_1.CharacterType(1) });
18358
+ // NOTE: fields must be in correct sequence for the syntax check
18359
+ components.push({ name: "index", type: new basic_1.IntegerType() });
18360
+ components.push({ name: "pagno", type: new basic_1.IntegerType() });
18361
+ components.push({ name: "tabix", type: new basic_1.IntegerType() });
18362
+ components.push({ name: "tfill", type: new basic_1.IntegerType() });
18363
+ components.push({ name: "tlopc", type: new basic_1.IntegerType() });
18364
+ components.push({ name: "tmaxl", type: new basic_1.IntegerType() });
18365
+ components.push({ name: "toccu", type: new basic_1.IntegerType() });
18366
+ components.push({ name: "ttabc", type: new basic_1.IntegerType() });
18367
+ components.push({ name: "tstis", type: new basic_1.IntegerType() });
18368
+ components.push({ name: "ttabi", type: new basic_1.IntegerType() });
18370
18369
  components.push({ name: "dbcnt", type: new basic_1.IntegerType() });
18371
- components.push({ name: "dbnam", type: new basic_1.CharacterType(20, { qualifiedName: "sy-dbnam" }) });
18372
- components.push({ name: "dbsys", type: new basic_1.CharacterType(10, { qualifiedName: "sy-dbsys" }) });
18373
- components.push({ name: "dyngr", type: new basic_1.CharacterType(4, { qualifiedName: "sy-dyngr" }) });
18374
- components.push({ name: "dynnr", type: new basic_1.CharacterType(4, { qualifiedName: "sy-dynnr" }) });
18375
- components.push({ name: "fdayw", type: new basic_1.IntegerType() });
18376
18370
  components.push({ name: "fdpos", type: new basic_1.IntegerType() });
18377
- components.push({ name: "fleng", type: new basic_1.IntegerType() });
18378
- components.push({ name: "folen", type: new basic_1.IntegerType() });
18379
- components.push({ name: "host", type: new basic_1.CharacterType(32, { qualifiedName: "sy-host" }) });
18380
- components.push({ name: "index", type: new basic_1.IntegerType() });
18381
- components.push({ name: "input", type: new basic_1.CharacterType(1, { qualifiedName: "sy-input" }) });
18382
- components.push({ name: "langu", type: new basic_1.CharacterType(1, { qualifiedName: "sy-langu", conversionExit: "ISOLA" }) });
18383
- components.push({ name: "ldbpg", type: new basic_1.CharacterType(40, { qualifiedName: "sy-ldbpg" }) });
18384
- components.push({ name: "lilli", type: new basic_1.IntegerType() });
18371
+ components.push({ name: "colno", type: new basic_1.IntegerType() });
18385
18372
  components.push({ name: "linct", type: new basic_1.IntegerType() });
18386
18373
  components.push({ name: "linno", type: new basic_1.IntegerType() });
18387
18374
  components.push({ name: "linsz", type: new basic_1.IntegerType() });
18388
- components.push({ name: "lisel", type: new basic_1.CharacterType(255, { qualifiedName: "sy-lisel" }) });
18389
- components.push({ name: "listi", type: new basic_1.IntegerType() });
18390
- components.push({ name: "loopc", type: new basic_1.IntegerType() });
18391
- components.push({ name: "lsind", type: new basic_1.IntegerType() });
18375
+ components.push({ name: "pagct", type: new basic_1.IntegerType() });
18392
18376
  components.push({ name: "macol", type: new basic_1.IntegerType() });
18393
- components.push({ name: "mandt", type: new basic_1.CharacterType(3, { qualifiedName: "sy-mandt" }) });
18394
18377
  components.push({ name: "marow", type: new basic_1.IntegerType() });
18378
+ components.push({ name: "tleng", type: new basic_1.IntegerType() });
18379
+ components.push({ name: "sfoff", type: new basic_1.IntegerType() });
18380
+ components.push({ name: "willi", type: new basic_1.IntegerType() });
18381
+ components.push({ name: "lilli", type: new basic_1.IntegerType() });
18382
+ components.push({ name: "subrc", type: new basic_1.IntegerType() });
18383
+ components.push({ name: "fleng", type: new basic_1.IntegerType() });
18384
+ components.push({ name: "cucol", type: new basic_1.IntegerType() });
18385
+ components.push({ name: "curow", type: new basic_1.IntegerType() });
18386
+ components.push({ name: "lsind", type: new basic_1.IntegerType() });
18387
+ components.push({ name: "listi", type: new basic_1.IntegerType() });
18388
+ components.push({ name: "stepl", type: new basic_1.IntegerType() });
18389
+ components.push({ name: "tpagi", type: new basic_1.IntegerType() });
18390
+ components.push({ name: "winx1", type: new basic_1.IntegerType() });
18391
+ components.push({ name: "winy1", type: new basic_1.IntegerType() });
18392
+ components.push({ name: "winx2", type: new basic_1.IntegerType() });
18393
+ components.push({ name: "winy2", type: new basic_1.IntegerType() });
18394
+ components.push({ name: "winco", type: new basic_1.IntegerType() });
18395
+ components.push({ name: "winro", type: new basic_1.IntegerType() });
18396
+ components.push({ name: "windi", type: new basic_1.IntegerType() });
18397
+ components.push({ name: "srows", type: new basic_1.IntegerType() });
18398
+ components.push({ name: "scols", type: new basic_1.IntegerType() });
18399
+ components.push({ name: "loopc", type: new basic_1.IntegerType() });
18400
+ components.push({ name: "folen", type: new basic_1.IntegerType() });
18401
+ components.push({ name: "fodec", type: new basic_1.IntegerType() });
18402
+ components.push({ name: "tzone", type: new basic_1.IntegerType() });
18403
+ components.push({ name: "dayst", type: new basic_1.CharacterType(1) });
18404
+ components.push({ name: "ftype", type: new basic_1.CharacterType(1) });
18405
+ components.push({ name: "appli", type: new basic_1.HexType(2) });
18406
+ components.push({ name: "fdayw", type: new basic_1.AnyType() });
18407
+ components.push({ name: "ccurs", type: new basic_1.PackedType(5, 0) });
18408
+ components.push({ name: "ccurt", type: new basic_1.PackedType(5, 0) });
18409
+ components.push({ name: "debug", type: new basic_1.CharacterType(1) });
18410
+ components.push({ name: "ctype", type: new basic_1.CharacterType(1) });
18411
+ components.push({ name: "input", type: new basic_1.CharacterType(1, { qualifiedName: "sy-input" }) });
18412
+ components.push({ name: "langu", type: new basic_1.CharacterType(1, { qualifiedName: "sy-langu", conversionExit: "ISOLA" }) });
18395
18413
  components.push({ name: "modno", type: new basic_1.IntegerType() });
18396
- components.push({ name: "msgid", type: new basic_1.CharacterType(20, { qualifiedName: "sy-msgid" }) });
18397
- components.push({ name: "msgli", type: new basic_1.CharacterType(60, { qualifiedName: "sy-msgli" }) });
18398
- components.push({ name: "msgno", type: new basic_1.NumericType(3, "sy-msgno") });
18399
- components.push({ name: "msgty", type: new basic_1.CharacterType(1, { qualifiedName: "sy-msgty" }) });
18400
- components.push({ name: "msgv1", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv1" }) });
18401
- components.push({ name: "msgv2", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv2" }) });
18402
- components.push({ name: "msgv3", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv3" }) });
18403
- components.push({ name: "msgv4", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv4" }) });
18404
- components.push({ name: "opsys", type: new basic_1.CharacterType(10, { qualifiedName: "sy-opsys" }) });
18405
- components.push({ name: "pagno", type: new basic_1.IntegerType() });
18414
+ components.push({ name: "batch", type: new basic_1.CharacterType(1, { qualifiedName: "sy-batch" }) });
18415
+ components.push({ name: "binpt", type: new basic_1.CharacterType(1, { qualifiedName: "sy-binpt" }) });
18416
+ components.push({ name: "calld", type: new basic_1.CharacterType(1, { qualifiedName: "sy-calld" }) });
18417
+ components.push({ name: "dynnr", type: new basic_1.CharacterType(4, { qualifiedName: "sy-dynnr" }) });
18418
+ components.push({ name: "dyngr", type: new basic_1.CharacterType(4, { qualifiedName: "sy-dyngr" }) });
18419
+ components.push({ name: "newpa", type: new basic_1.CharacterType(1) });
18420
+ components.push({ name: "pri40", type: new basic_1.CharacterType(1) });
18421
+ components.push({ name: "rstrt", type: new basic_1.CharacterType(1) });
18422
+ components.push({ name: "wtitl", type: new basic_1.CharacterType(1, { qualifiedName: "sy-wtitl" }) });
18423
+ components.push({ name: "cpage", type: new basic_1.IntegerType() });
18424
+ components.push({ name: "dbnam", type: new basic_1.CharacterType(20, { qualifiedName: "sy-dbnam" }) });
18425
+ components.push({ name: "mandt", type: new basic_1.CharacterType(3, { qualifiedName: "sy-mandt" }) });
18426
+ components.push({ name: "prefx", type: new basic_1.CharacterType(3) });
18427
+ components.push({ name: "fmkey", type: new basic_1.CharacterType(3) });
18428
+ components.push({ name: "pexpi", type: new basic_1.NumericType(1) });
18429
+ components.push({ name: "prini", type: new basic_1.NumericType(1) });
18430
+ components.push({ name: "primm", type: new basic_1.CharacterType(1) });
18431
+ components.push({ name: "prrel", type: new basic_1.CharacterType(1) });
18432
+ components.push({ name: "playo", type: new basic_1.CharacterType(5) });
18433
+ components.push({ name: "prbig", type: new basic_1.CharacterType(1) });
18434
+ components.push({ name: "playp", type: new basic_1.CharacterType(1) });
18435
+ components.push({ name: "prnew", type: new basic_1.CharacterType(1) });
18436
+ components.push({ name: "prlog", type: new basic_1.CharacterType(1) });
18406
18437
  components.push({ name: "pdest", type: new basic_1.CharacterType(4, { qualifiedName: "sy-pdest" }) });
18438
+ components.push({ name: "plist", type: new basic_1.CharacterType(12) });
18439
+ components.push({ name: "pauth", type: new basic_1.NumericType(2) });
18440
+ components.push({ name: "prdsn", type: new basic_1.CharacterType(6) });
18441
+ components.push({ name: "pnwpa", type: new basic_1.CharacterType(1) });
18442
+ components.push({ name: "callr", type: new basic_1.CharacterType(8, { qualifiedName: "sy-callr" }) });
18443
+ components.push({ name: "repi2", type: new basic_1.CharacterType(40) });
18444
+ components.push({ name: "rtitl", type: new basic_1.CharacterType(70) });
18445
+ components.push({ name: "prrec", type: new basic_1.CharacterType(12) });
18446
+ components.push({ name: "prtxt", type: new basic_1.CharacterType(68) });
18447
+ components.push({ name: "prabt", type: new basic_1.CharacterType(12) });
18448
+ components.push({ name: "lpass", type: new basic_1.CharacterType(4) });
18449
+ components.push({ name: "nrpag", type: new basic_1.CharacterType(1) });
18450
+ components.push({ name: "paart", type: new basic_1.CharacterType(16) });
18451
+ components.push({ name: "prcop", type: new basic_1.NumericType(3) });
18452
+ components.push({ name: "batzs", type: new basic_1.CharacterType(1) });
18453
+ components.push({ name: "bspld", type: new basic_1.CharacterType(1) });
18454
+ components.push({ name: "brep4", type: new basic_1.CharacterType(4) });
18455
+ components.push({ name: "batzo", type: new basic_1.CharacterType(1) });
18456
+ components.push({ name: "batzd", type: new basic_1.CharacterType(1) });
18457
+ components.push({ name: "batzw", type: new basic_1.CharacterType(1) });
18458
+ components.push({ name: "batzm", type: new basic_1.CharacterType(1) });
18459
+ components.push({ name: "ctabl", type: new basic_1.CharacterType(4) });
18460
+ components.push({ name: "dbsys", type: new basic_1.CharacterType(10, { qualifiedName: "sy-dbsys" }) });
18461
+ components.push({ name: "dcsys", type: new basic_1.CharacterType(4) });
18462
+ components.push({ name: "macdb", type: new basic_1.CharacterType(4) });
18463
+ components.push({ name: "sysid", type: new basic_1.CharacterType(8, { qualifiedName: "sy-sysid" }) });
18464
+ components.push({ name: "opsys", type: new basic_1.CharacterType(10, { qualifiedName: "sy-opsys" }) });
18407
18465
  components.push({ name: "pfkey", type: new basic_1.CharacterType(20, { qualifiedName: "sy-pfkey" }) });
18408
- components.push({ name: "repid", type: new basic_1.CharacterType(40, { qualifiedName: "sy-repid" }) });
18409
18466
  components.push({ name: "saprl", type: new basic_1.CharacterType(4, { qualifiedName: "sy-saprl" }) });
18410
- components.push({ name: "scols", type: new basic_1.IntegerType() });
18411
- components.push({ name: "slset", type: new basic_1.CharacterType(14, { qualifiedName: "sy-slset" }) });
18412
- components.push({ name: "spono", type: new basic_1.CharacterType(10, { qualifiedName: "sy-spono" }) });
18413
- components.push({ name: "srows", type: new basic_1.IntegerType() });
18414
- components.push({ name: "staco", type: new basic_1.IntegerType() });
18415
- components.push({ name: "staro", type: new basic_1.IntegerType() });
18416
- components.push({ name: "stepl", type: new basic_1.IntegerType() });
18417
- components.push({ name: "subrc", type: new basic_1.IntegerType() });
18418
- components.push({ name: "sysid", type: new basic_1.CharacterType(3, { qualifiedName: "sy-sysid" }) });
18419
- components.push({ name: "tabix", type: new basic_1.IntegerType() });
18420
18467
  components.push({ name: "tcode", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tcode" }) });
18421
- components.push({ name: "tfill", type: new basic_1.IntegerType() });
18422
- components.push({ name: "timlo", type: new basic_1.TimeType() });
18468
+ components.push({ name: "ucomm", type: new basic_1.CharacterType(70, { qualifiedName: "sy-ucomm" }) });
18469
+ components.push({ name: "cfwae", type: new basic_1.CharacterType(5) });
18470
+ components.push({ name: "chwae", type: new basic_1.CharacterType(5) });
18471
+ components.push({ name: "spono", type: new basic_1.CharacterType(10, { qualifiedName: "sy-spono" }) });
18472
+ components.push({ name: "sponr", type: new basic_1.NumericType(10) });
18473
+ components.push({ name: "waers", type: new basic_1.CharacterType(5) });
18474
+ components.push({ name: "cdate", type: new basic_1.DateType() });
18475
+ components.push({ name: "datum", type: new basic_1.DateType() });
18476
+ components.push({ name: "slset", type: new basic_1.CharacterType(14, { qualifiedName: "sy-slset" }) });
18477
+ components.push({ name: "subty", type: new basic_1.HexType(1) });
18478
+ components.push({ name: "subcs", type: new basic_1.CharacterType(1) });
18479
+ components.push({ name: "group", type: new basic_1.CharacterType(1) });
18480
+ components.push({ name: "ffile", type: new basic_1.CharacterType(8) });
18481
+ components.push({ name: "uzeit", type: new basic_1.TimeType() });
18482
+ components.push({ name: "dsnam", type: new basic_1.CharacterType(8) });
18483
+ components.push({ name: "tabid", type: new basic_1.CharacterType(8) });
18484
+ components.push({ name: "tfdsn", type: new basic_1.CharacterType(8) });
18485
+ components.push({ name: "uname", type: new basic_1.CharacterType(12, { qualifiedName: "sy-uname" }) });
18486
+ components.push({ name: "lstat", type: new basic_1.CharacterType(16) });
18487
+ components.push({ name: "abcde", type: new basic_1.CharacterType(26, { qualifiedName: "sy-abcde" }) });
18488
+ components.push({ name: "marky", type: new basic_1.CharacterType(1) });
18489
+ components.push({ name: "sfnam", type: new basic_1.CharacterType(30) });
18490
+ components.push({ name: "tname", type: new basic_1.CharacterType(30) });
18491
+ components.push({ name: "msgli", type: new basic_1.CharacterType(60, { qualifiedName: "sy-msgli" }) });
18423
18492
  components.push({ name: "title", type: new basic_1.CharacterType(70, { qualifiedName: "sy-title" }) });
18424
- components.push({ name: "tleng", type: new basic_1.IntegerType() });
18493
+ components.push({ name: "entry", type: new basic_1.CharacterType(72) });
18494
+ components.push({ name: "lisel", type: new basic_1.CharacterType(255, { qualifiedName: "sy-lisel" }) });
18495
+ components.push({ name: "uline", type: new basic_1.CharacterType(255, { qualifiedName: "sy-uline" }) });
18496
+ components.push({ name: "xcode", type: new basic_1.CharacterType(70) });
18497
+ components.push({ name: "cprog", type: new basic_1.CharacterType(40, { qualifiedName: "sy-cprog" }) });
18498
+ components.push({ name: "xprog", type: new basic_1.CharacterType(40) });
18499
+ components.push({ name: "xform", type: new basic_1.CharacterType(30) });
18500
+ components.push({ name: "ldbpg", type: new basic_1.CharacterType(40, { qualifiedName: "sy-ldbpg" }) });
18425
18501
  components.push({ name: "tvar0", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar0" }) });
18426
18502
  components.push({ name: "tvar1", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar1" }) });
18427
18503
  components.push({ name: "tvar2", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar2" }) });
@@ -18432,20 +18508,34 @@ class BuiltIn {
18432
18508
  components.push({ name: "tvar7", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar7" }) });
18433
18509
  components.push({ name: "tvar8", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar8" }) });
18434
18510
  components.push({ name: "tvar9", type: new basic_1.CharacterType(20, { qualifiedName: "sy-tvar9" }) });
18435
- components.push({ name: "tzone", type: new basic_1.IntegerType() });
18436
- components.push({ name: "ucomm", type: new basic_1.CharacterType(70, { qualifiedName: "sy-ucomm" }) });
18437
- components.push({ name: "uline", type: new basic_1.CharacterType(255, { qualifiedName: "sy-uline" }) });
18438
- components.push({ name: "uname", type: new basic_1.CharacterType(12, { qualifiedName: "sy-uname" }) });
18439
- components.push({ name: "uzeit", type: new basic_1.TimeType() });
18511
+ components.push({ name: "msgid", type: new basic_1.CharacterType(20, { qualifiedName: "sy-msgid" }) });
18512
+ components.push({ name: "msgty", type: new basic_1.CharacterType(1, { qualifiedName: "sy-msgty" }) });
18513
+ components.push({ name: "msgno", type: new basic_1.NumericType(3, "sy-msgno") });
18514
+ components.push({ name: "msgv1", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv1" }) });
18515
+ components.push({ name: "msgv2", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv2" }) });
18516
+ components.push({ name: "msgv3", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv3" }) });
18517
+ components.push({ name: "msgv4", type: new basic_1.CharacterType(50, { qualifiedName: "sy-msgv4" }) });
18518
+ components.push({ name: "oncom", type: new basic_1.CharacterType(1) });
18440
18519
  components.push({ name: "vline", type: new basic_1.CharacterType(1, { qualifiedName: "sy-vline" }) });
18441
- components.push({ name: "wtitl", type: new basic_1.CharacterType(1, { qualifiedName: "sy-wtitl" }) });
18520
+ components.push({ name: "winsl", type: new basic_1.CharacterType(79) });
18521
+ components.push({ name: "staco", type: new basic_1.IntegerType() });
18522
+ components.push({ name: "staro", type: new basic_1.IntegerType() });
18523
+ components.push({ name: "datar", type: new basic_1.CharacterType(1, { qualifiedName: "sy-datar" }) });
18524
+ components.push({ name: "host", type: new basic_1.CharacterType(32, { qualifiedName: "sy-host" }) });
18525
+ components.push({ name: "locdb", type: new basic_1.CharacterType(1) });
18526
+ components.push({ name: "locop", type: new basic_1.CharacterType(1) });
18527
+ components.push({ name: "datlo", type: new basic_1.DateType() });
18528
+ components.push({ name: "timlo", type: new basic_1.TimeType() });
18442
18529
  components.push({ name: "zonlo", type: new basic_1.CharacterType(6, { qualifiedName: "sy-zonlo" }) });
18443
18530
  const type = new basic_1.StructureType(components);
18444
18531
  const id1 = new tokens_1.Identifier(new position_1.Position(this.row++, 1), "sy");
18445
18532
  const sy = new _typed_identifier_1.TypedIdentifier(id1, BuiltIn.filename, type, ["read_only" /* IdentifierMeta.ReadOnly */, "built-in" /* IdentifierMeta.BuiltIn */]);
18446
18533
  const id2 = new tokens_1.Identifier(new position_1.Position(this.row++, 1), "syst");
18447
18534
  const syst = new _typed_identifier_1.TypedIdentifier(id2, BuiltIn.filename, type, ["read_only" /* IdentifierMeta.ReadOnly */, "built-in" /* IdentifierMeta.BuiltIn */]);
18448
- return [sy, syst];
18535
+ // https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abennews-610-system.htm
18536
+ const id3 = new tokens_1.Identifier(new position_1.Position(this.row++, 1), "sy-repid");
18537
+ const syrepid = new _typed_identifier_1.TypedIdentifier(id3, BuiltIn.filename, new basic_1.CharacterType(40, { qualifiedName: "sy-repid" }), ["read_only" /* IdentifierMeta.ReadOnly */, "built-in" /* IdentifierMeta.BuiltIn */]);
18538
+ return [sy, syst, syrepid];
18449
18539
  }
18450
18540
  buildConstant(name, type, value) {
18451
18541
  const id = new tokens_1.Identifier(new position_1.Position(this.row++, 1), name);
@@ -20453,6 +20543,14 @@ class TypeUtils {
20453
20543
  }
20454
20544
  return false;
20455
20545
  }
20546
+ structureContainsVoid(structure) {
20547
+ for (const c of structure.getComponents()) {
20548
+ if (c.type instanceof basic_1.VoidType) {
20549
+ return true;
20550
+ }
20551
+ }
20552
+ return false;
20553
+ }
20456
20554
  isAssignableStrict(source, target) {
20457
20555
  var _a, _b;
20458
20556
  /*
@@ -20517,19 +20615,23 @@ class TypeUtils {
20517
20615
  else if (sourceRowType instanceof basic_1.VoidType || sourceRowType instanceof basic_1.AnyType || sourceRowType instanceof basic_1.UnknownType) {
20518
20616
  return true;
20519
20617
  }
20520
- if (targetRowType instanceof basic_1.StructureType && this.structureContainsString(targetRowType)) {
20618
+ if (targetRowType instanceof basic_1.StructureType
20619
+ && this.structureContainsString(targetRowType)) {
20521
20620
  if (!(sourceRowType instanceof basic_1.StructureType)) {
20522
20621
  return false;
20523
20622
  }
20524
- else if (!(this.structureContainsString(sourceRowType))) {
20623
+ else if (!(this.structureContainsString(sourceRowType))
20624
+ && this.structureContainsVoid(sourceRowType) === false) {
20525
20625
  return false;
20526
20626
  }
20527
20627
  }
20528
- if (sourceRowType instanceof basic_1.StructureType && this.structureContainsString(sourceRowType)) {
20628
+ else if (sourceRowType instanceof basic_1.StructureType
20629
+ && this.structureContainsString(sourceRowType)) {
20529
20630
  if (!(targetRowType instanceof basic_1.StructureType)) {
20530
20631
  return false;
20531
20632
  }
20532
- else if (!(this.structureContainsString(targetRowType))) {
20633
+ else if (!(this.structureContainsString(targetRowType))
20634
+ && this.structureContainsVoid(targetRowType) === false) {
20533
20635
  return false;
20534
20636
  }
20535
20637
  }
@@ -20723,7 +20825,7 @@ class BasicTypes {
20723
20825
  throw new Error("resolveLikeName, chain undefined");
20724
20826
  }
20725
20827
  const fullName = chain.concatTokens();
20726
- const children = [...chain.getChildren()];
20828
+ let children = [...chain.getChildren()];
20727
20829
  if (children.length === 0) {
20728
20830
  return new Types.UnknownType("Type error, could not resolve \"" + fullName + "\", resolveLikeName1");
20729
20831
  }
@@ -20734,6 +20836,11 @@ class BasicTypes {
20734
20836
  else {
20735
20837
  const name = children.shift().getFirstToken().getStr();
20736
20838
  let found = this.scope.findVariable(name);
20839
+ const full = this.scope.findVariable(fullName); // workaround for eg "sy-repid"
20840
+ if (full) {
20841
+ children = [];
20842
+ found = full;
20843
+ }
20737
20844
  type = found === null || found === void 0 ? void 0 : found.getType();
20738
20845
  if (found === undefined) {
20739
20846
  found = this.scope.findExtraLikeType(name);
@@ -21190,7 +21297,15 @@ class BasicTypes {
21190
21297
  resolveTypeChain(expr) {
21191
21298
  var _a;
21192
21299
  const chainText = expr.concatTokens().toUpperCase();
21193
- if (chainText.includes("=>") === false && chainText.includes("-") === false) {
21300
+ if (chainText.includes("-")) {
21301
+ // workaround for stuff like "sy-repid"
21302
+ const built = this.scope.findType(chainText);
21303
+ if (built) {
21304
+ this.scope.addReference(expr.getFirstToken(), built, _reference_1.ReferenceType.TypeReference, this.filename);
21305
+ return built.getType();
21306
+ }
21307
+ }
21308
+ else if (chainText.includes("=>") === false && chainText.includes("-") === false) {
21194
21309
  return undefined;
21195
21310
  }
21196
21311
  let className;
@@ -21580,6 +21695,7 @@ const object_reference_type_1 = __webpack_require__(/*! ../../types/basic/object
21580
21695
  const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
21581
21696
  const data_reference_type_1 = __webpack_require__(/*! ../../types/basic/data_reference_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/data_reference_type.js");
21582
21697
  const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
21698
+ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
21583
21699
  class AttributeName {
21584
21700
  runSyntax(context, node, scope, filename, type) {
21585
21701
  if (context instanceof void_type_1.VoidType) {
@@ -21615,7 +21731,7 @@ class AttributeName {
21615
21731
  else if (context instanceof data_reference_type_1.DataReference) {
21616
21732
  const sub = context.getType();
21617
21733
  const name = node.getFirstToken().getStr();
21618
- if (name === "*") {
21734
+ if (name === "*" || sub instanceof void_type_1.VoidType || sub instanceof basic_1.AnyType) {
21619
21735
  return sub;
21620
21736
  }
21621
21737
  if (!(sub instanceof structure_type_1.StructureType)) {
@@ -25724,7 +25840,7 @@ class CallFunction {
25724
25840
  }
25725
25841
  else if (scope.getVersion() === version_1.Version.Cloud
25726
25842
  && node.findDirectExpression(Expressions.Destination) === undefined) {
25727
- const functionName = name === null || name === void 0 ? void 0 : name.concatTokens().replace(/'/, "");
25843
+ const functionName = name === null || name === void 0 ? void 0 : name.concatTokens().replace(/'/g, "");
25728
25844
  if (scope.findFunctionModule(functionName) === undefined) {
25729
25845
  throw new Error(`Function module "${functionName}" not found/released`);
25730
25846
  }
@@ -46358,7 +46474,7 @@ class Registry {
46358
46474
  }
46359
46475
  static abaplintVersion() {
46360
46476
  // magic, see build script "version.sh"
46361
- return "2.97.12";
46477
+ return "2.97.14";
46362
46478
  }
46363
46479
  getDDICReferences() {
46364
46480
  return this.references;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.6.21",
3
+ "version": "2.6.22",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "bin": {
6
6
  "abap_transpile": "./abap_transpile"
@@ -25,12 +25,12 @@
25
25
  "author": "abaplint",
26
26
  "license": "MIT",
27
27
  "devDependencies": {
28
- "@abaplint/transpiler": "^2.6.21",
28
+ "@abaplint/transpiler": "^2.6.22",
29
29
  "@types/glob": "^7.2.0",
30
30
  "glob": "=7.2.0",
31
31
  "@types/progress": "^2.0.5",
32
32
  "@types/node": "^18.15.11",
33
- "@abaplint/core": "^2.97.12",
33
+ "@abaplint/core": "^2.97.14",
34
34
  "progress": "^2.0.3",
35
35
  "webpack": "^5.79.0",
36
36
  "webpack-cli": "^5.0.1",