@intend-it/parser 1.3.2 → 1.3.3

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/dist/index.js +39 -28
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -9145,6 +9145,7 @@ class CstParser extends Parser {
9145
9145
  }
9146
9146
  }
9147
9147
  // src/tokens.ts
9148
+ var Identifier = createToken({ name: "Identifier", pattern: /[a-zA-Z_]\w*/ });
9148
9149
  var LineComment = createToken({
9149
9150
  name: "LineComment",
9150
9151
  pattern: /\/\/[^\n\r]*/,
@@ -9155,20 +9156,20 @@ var BlockComment = createToken({
9155
9156
  pattern: /\/\*[\s\S]*?\*\//,
9156
9157
  group: Lexer.SKIPPED
9157
9158
  });
9158
- var Import = createToken({ name: "Import", pattern: /import/ });
9159
- var From = createToken({ name: "From", pattern: /from/ });
9160
- var Intent = createToken({ name: "Intent", pattern: /intent/ });
9161
- var Context = createToken({ name: "Context", pattern: /context/ });
9162
- var Export = createToken({ name: "Export", pattern: /export/ });
9163
- var Invariant = createToken({ name: "Invariant", pattern: /invariant/ });
9164
- var Step = createToken({ name: "Step", pattern: /step/ });
9165
- var Ensure = createToken({ name: "Ensure", pattern: /ensure/ });
9166
- var Const = createToken({ name: "Const", pattern: /const/ });
9167
- var Is = createToken({ name: "Is", pattern: /is/ });
9168
- var Defined = createToken({ name: "Defined", pattern: /defined/ });
9169
- var Entry = createToken({ name: "Entry", pattern: /entry/ });
9170
- var Let = createToken({ name: "Let", pattern: /let/ });
9171
- var Return = createToken({ name: "Return", pattern: /return/ });
9159
+ var Import = createToken({ name: "Import", pattern: /import/, longer_alt: Identifier });
9160
+ var From = createToken({ name: "From", pattern: /from/, longer_alt: Identifier });
9161
+ var Intent = createToken({ name: "Intent", pattern: /intent/, longer_alt: Identifier });
9162
+ var Context = createToken({ name: "Context", pattern: /context/, longer_alt: Identifier });
9163
+ var Export = createToken({ name: "Export", pattern: /export/, longer_alt: Identifier });
9164
+ var Invariant = createToken({ name: "Invariant", pattern: /invariant/, longer_alt: Identifier });
9165
+ var Step = createToken({ name: "Step", pattern: /step/, longer_alt: Identifier });
9166
+ var Ensure = createToken({ name: "Ensure", pattern: /ensure/, longer_alt: Identifier });
9167
+ var Const = createToken({ name: "Const", pattern: /const/, longer_alt: Identifier });
9168
+ var Is = createToken({ name: "Is", pattern: /is/, longer_alt: Identifier });
9169
+ var Defined = createToken({ name: "Defined", pattern: /defined/, longer_alt: Identifier });
9170
+ var Entry = createToken({ name: "Entry", pattern: /entry/, longer_alt: Identifier });
9171
+ var Let = createToken({ name: "Let", pattern: /let/, longer_alt: Identifier });
9172
+ var Return = createToken({ name: "Return", pattern: /return/, longer_alt: Identifier });
9172
9173
  var LCurly = createToken({ name: "LCurly", pattern: /{/ });
9173
9174
  var RCurly = createToken({ name: "RCurly", pattern: /}/ });
9174
9175
  var LParen = createToken({ name: "LParen", pattern: /\(/ });
@@ -9192,7 +9193,6 @@ var StringLiteral = createToken({
9192
9193
  line_breaks: true
9193
9194
  });
9194
9195
  var NumberLiteral = createToken({ name: "NumberLiteral", pattern: /-?\d+(\.\d+)?/ });
9195
- var Identifier = createToken({ name: "Identifier", pattern: /[a-zA-Z_]\w*/ });
9196
9196
  var WhiteSpace = createToken({
9197
9197
  name: "WhiteSpace",
9198
9198
  pattern: /\s+/,
@@ -9350,18 +9350,27 @@ class IntendParser extends CstParser {
9350
9350
  this.OPTION(() => {
9351
9351
  this.CONSUME(FatArrow);
9352
9352
  this.OR([
9353
- { ALT: () => this.CONSUME(Const) },
9354
- { ALT: () => this.CONSUME(Let) }
9353
+ { ALT: () => {
9354
+ this.OR2([
9355
+ { ALT: () => this.CONSUME(Const) },
9356
+ { ALT: () => this.CONSUME(Let) }
9357
+ ]);
9358
+ this.CONSUME(Identifier, { LABEL: "ResultVar" });
9359
+ this.OPTION2(() => {
9360
+ this.CONSUME(Colon);
9361
+ this.CONSUME2(Identifier, { LABEL: "ResultType" });
9362
+ this.OPTION3(() => {
9363
+ this.CONSUME(LBracket);
9364
+ this.CONSUME(RBracket);
9365
+ });
9366
+ });
9367
+ } },
9368
+ { ALT: () => {
9369
+ this.CONSUME(LCurly);
9370
+ this.SUBRULE(this.body);
9371
+ this.CONSUME(RCurly);
9372
+ } }
9355
9373
  ]);
9356
- this.CONSUME(Identifier, { LABEL: "ResultVar" });
9357
- this.OPTION2(() => {
9358
- this.CONSUME(Colon);
9359
- this.CONSUME2(Identifier, { LABEL: "ResultType" });
9360
- this.OPTION3(() => {
9361
- this.CONSUME(LBracket);
9362
- this.CONSUME(RBracket);
9363
- });
9364
- });
9365
9374
  });
9366
9375
  });
9367
9376
  ensureStatement = this.RULE("ensureStatement", () => {
@@ -9377,7 +9386,8 @@ class IntendParser extends CstParser {
9377
9386
  { ALT: () => this.CONSUME(LessThan) },
9378
9387
  { ALT: () => this.CONSUME(Is) },
9379
9388
  { ALT: () => this.CONSUME(Defined) },
9380
- { ALT: () => this.CONSUME(StringLiteral) }
9389
+ { ALT: () => this.CONSUME(StringLiteral) },
9390
+ { ALT: () => this.CONSUME(NumberLiteral) }
9381
9391
  ]);
9382
9392
  });
9383
9393
  });
@@ -9605,7 +9615,8 @@ class IntendASTVisitor extends BaseIntendVisitor {
9605
9615
  ...ctx.LessThan || [],
9606
9616
  ...ctx.Is || [],
9607
9617
  ...ctx.Defined || [],
9608
- ...ctx.StringLiteral || []
9618
+ ...ctx.StringLiteral || [],
9619
+ ...ctx.NumberLiteral || []
9609
9620
  ];
9610
9621
  tokens.sort((a, b) => a.startOffset - b.startOffset);
9611
9622
  let expression = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intend-it/parser",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "Parser for the Intend programming language",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",