@graffiticode/basis 1.2.0 → 1.4.0

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/package.json +1 -1
  2. package/src/compiler.js +17 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@graffiticode/basis",
3
3
  "type": "module",
4
- "version": "1.2.0",
4
+ "version": "1.4.0",
5
5
  "description": "The basis library for creating Graffiticode languages",
6
6
  "main": "index.js",
7
7
  "scripts": {
package/src/compiler.js CHANGED
@@ -137,6 +137,14 @@ export class Checker extends Visitor {
137
137
  const val = node;
138
138
  resume(err, val);
139
139
  }
140
+ JSON(node, options, resume) {
141
+ this.visit(node.elts[0], options, (e0, v0) => {
142
+ assert(v0.tag === "STR");
143
+ const err = [];
144
+ const val = node;
145
+ resume(err, val);
146
+ });
147
+ }
140
148
  CONCAT(node, options, resume) {
141
149
  this.visit(node.elts[0], options, (e0, v0) => {
142
150
  const err = [];
@@ -484,6 +492,13 @@ export class Transformer extends Visitor {
484
492
  const val = node.elts[0];
485
493
  resume(err, val);
486
494
  }
495
+ JSON(node, options, resume) {
496
+ this.visit(node.elts[0], options, (e0, v0) => {
497
+ const err = [];
498
+ const val = JSON.parse(v0);
499
+ resume(err, val);
500
+ });
501
+ }
487
502
  CONCAT(node, options, resume) {
488
503
  this.visit(node.elts[0], options, (e0, v0) => {
489
504
  const err = [];
@@ -502,7 +517,7 @@ export class Transformer extends Visitor {
502
517
  }
503
518
  BOOL(node, options, resume) {
504
519
  const err = [];
505
- const val = node;
520
+ const val = node.elts[0];
506
521
  resume(err, val);
507
522
  }
508
523
  NULL(node, options, resume) {
@@ -593,7 +608,7 @@ export class Transformer extends Visitor {
593
608
  resume(err, val);
594
609
  }
595
610
  DATA(node, options, resume) {
596
- if (options.data && Object.keys(options.data).length != 0) {
611
+ if (options.data && Object.keys(options.data).length !== 0) {
597
612
  // Got external data, so use it.
598
613
  const err = [];
599
614
  const val = options.data;