@bablr/language-en-bablr-vm-instruction 0.4.1 → 0.6.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.
@@ -9,7 +9,7 @@ export const dependencies = { Space };
9
9
 
10
10
  export function* eatMatchTrivia() {
11
11
  if (yield i`match(/[ \t\n]/)`) {
12
- return yield i`eat(<#*Space:Space>)`;
12
+ return yield i`eat(<#*Space:Space />)`;
13
13
  }
14
14
  return null;
15
15
  }
@@ -17,84 +17,84 @@ export function* eatMatchTrivia() {
17
17
  export const grammar = class BABLRVMInstructionGrammar {
18
18
  @Node
19
19
  *Call() {
20
- yield i`eat(<*Identifier> 'callee')`;
20
+ yield i`eat(<*Identifier /> 'callee$')`;
21
21
  yield* eatMatchTrivia();
22
- yield i`eat(<Tuple> 'arguments')`;
22
+ yield i`eat(<Tuple /> 'arguments$')`;
23
23
  }
24
24
 
25
25
  *Expression() {
26
- yield i`eat(<Any> null [
27
- <Array '['>
28
- <Object '{'>
29
- <Tuple '('>
30
- <*Boolean /true|false/>
31
- <*Null 'null'>
32
- <*Identifier /[a-zA-Z]+/>
33
- <Number /[\d]|[+-]?Infinity/>
26
+ yield i`eat(<Any /> null [
27
+ <Array '[' />
28
+ <Object '{' />
29
+ <Tuple '(' />
30
+ <*Boolean /true|false/ />
31
+ <*Null 'null' />
32
+ <*Identifier /[a-zA-Z]+/ />
33
+ <Number /[\d]|[+-]?Infinity/ />
34
34
  ])`;
35
35
  }
36
36
 
37
37
  @CoveredBy('Expression')
38
38
  @Node
39
39
  *Array() {
40
- yield i`eat(<~*Punctuator '[' balanced=']'> 'openToken')`;
40
+ yield i`eat(<*Punctuator '[' balanced=']' /> 'openToken')`;
41
41
  let sp = yield* eatMatchTrivia();
42
42
  let first = true;
43
43
  while ((first || sp) && (yield i`match(/./y)`)) {
44
- yield i`eat(<Expression> 'elements[]')`;
44
+ yield i`eat(<Expression /> 'elements[]$')`;
45
45
  sp = yield* eatMatchTrivia();
46
46
  first = false;
47
47
  }
48
- yield i`eat(<~*Punctuator ']' balancer> 'closeToken')`;
48
+ yield i`eat(<*Punctuator ']' balancer /> 'closeToken')`;
49
49
  }
50
50
 
51
51
  @CoveredBy('Expression')
52
52
  @Node
53
53
  *Object() {
54
- yield i`eat(<~*Punctuator '{' balanced='}'> 'openToken')`;
54
+ yield i`eat(<*Punctuator '{' balanced='}' /> 'openToken')`;
55
55
  let sp = yield* eatMatchTrivia();
56
56
  let first = true;
57
57
  while ((first || sp) && (yield i`match(/./y)`)) {
58
- yield i`eat(<Property> 'properties[]')`;
58
+ yield i`eat(<Property /> 'properties[]$')`;
59
59
  sp = yield* eatMatchTrivia();
60
60
  first = false;
61
61
  }
62
- yield i`eat(<~*Punctuator '}' balancer> 'closeToken')`;
62
+ yield i`eat(<*Punctuator '}' balancer /> 'closeToken')`;
63
63
  }
64
64
 
65
65
  @Node
66
66
  *Property() {
67
- yield i`eat(<*Identifier> 'key')`;
67
+ yield i`eat(<*Identifier /> 'key$')`;
68
68
  yield* eatMatchTrivia();
69
- yield i`eat(<~*Punctuator ':'> 'mapToken')`;
69
+ yield i`eat(<*Punctuator ':' /> 'mapToken')`;
70
70
  yield* eatMatchTrivia();
71
- yield i`eat(<Expression> 'value')`;
71
+ yield i`eat(<Expression /> 'value$')`;
72
72
  }
73
73
 
74
74
  @CoveredBy('Expression')
75
75
  @Node
76
76
  *Tuple() {
77
- yield i`eat(<~*Punctuator '(' balanced=')'> 'openToken')`;
77
+ yield i`eat(<*Punctuator '(' balanced=')' /> 'openToken')`;
78
78
  let sp = yield* eatMatchTrivia();
79
79
  let first = true;
80
80
  while ((first || sp) && (yield i`match(/./y)`)) {
81
- yield i`eat(<Expression> 'values[]')`;
81
+ yield i`eat(<Expression /> 'values[]$')`;
82
82
  sp = yield* eatMatchTrivia();
83
83
  first = false;
84
84
  }
85
- yield i`eat(<~*Punctuator ')' balancer> 'closeToken')`;
85
+ yield i`eat(<*Punctuator ')' balancer /> 'closeToken')`;
86
86
  }
87
87
 
88
88
  @CoveredBy('Expression')
89
89
  @Node
90
90
  *Boolean() {
91
- yield i`eat(<~*Keyword /true|false/> 'sigilToken')`;
91
+ yield i`eat(<*Keyword /true|false/ /> 'sigilToken')`;
92
92
  }
93
93
 
94
94
  @CoveredBy('Expression')
95
95
  @Node
96
96
  *Null() {
97
- yield i`eat(<~*Keyword 'null'> 'sigilToken')`;
97
+ yield i`eat(<*Keyword 'null' /> 'sigilToken')`;
98
98
  }
99
99
 
100
100
  @CoveredBy('Expression')
@@ -104,26 +104,26 @@ export const grammar = class BABLRVMInstructionGrammar {
104
104
  }
105
105
 
106
106
  *Number() {
107
- yield i`eat(<Any> null [
108
- <Integer /-?\d/>
109
- <Infinity /[+-]I/>
107
+ yield i`eat(<Any /> null [
108
+ <Integer /-?\d/ />
109
+ <Infinity /[+-]I/ />
110
110
  ])`;
111
111
  }
112
112
 
113
113
  @Node
114
114
  *UnsignedInteger() {
115
- yield i`eat(<Digits> 'digits[]')`;
115
+ yield i`eat(<Digits /> 'digits[]')`;
116
116
  }
117
117
 
118
118
  @CoveredBy('Number')
119
119
  @Node
120
120
  *Integer() {
121
- yield i`eatMatch(<~*Punctuator '-'> 'negativeToken')`;
122
- yield i`eat(<Digits> 'digits[]')`;
121
+ yield i`eatMatch(<*Punctuator '-' /> 'negativeToken')`;
122
+ yield i`eat(<Digits /> 'digits[]$')`;
123
123
  }
124
124
 
125
125
  *Digits() {
126
- while (yield i`eatMatch(<*Digit /\d/>)`);
126
+ while (yield i`eatMatch(<*Digit /\d/ />)`);
127
127
  }
128
128
 
129
129
  @Node
@@ -134,8 +134,8 @@ export const grammar = class BABLRVMInstructionGrammar {
134
134
  @CoveredBy('Number')
135
135
  @Node
136
136
  *Infinity() {
137
- yield i`eatMatch(<~*Punctuator /[+-]/> 'signToken')`;
138
- yield i`eat(<~*Keyword 'Infinity'> 'sigilToken')`;
137
+ yield i`eatMatch(<*Punctuator /[+-]/ /> 'signToken')`;
138
+ yield i`eat(<*Keyword 'Infinity' /> 'sigilToken')`;
139
139
  }
140
140
 
141
141
  @Node
@@ -1,10 +1,10 @@
1
1
  /* @macrome
2
2
  * @generatedby @bablr/macrome-generator-bablr
3
- * @generatedfrom ./spamex.grammar.macro.js#561164733b6bdc7804d17e92c05c50de30f00af3
3
+ * @generatedfrom ./spamex.grammar.macro.js#6c543e4d2cab09c937adce531cf39b3e2b97bf80
4
4
  * This file is autogenerated. Please do not edit it directly.
5
5
  * When editing run `npx macrome watch` then change the file this is generated from.
6
6
  */
7
- import { interpolateArray as _interpolateArray, interpolateArrayChildren as _interpolateArrayChildren, interpolateString as _interpolateString } from "@bablr/agast-helpers/template";
7
+ import { interpolateArray as _interpolateArray, interpolateFragmentChildren as _interpolateFragmentChildren, interpolateString as _interpolateString } from "@bablr/agast-helpers/template";
8
8
  import * as _l from "@bablr/agast-vm-helpers/languages";
9
9
  import * as _t from "@bablr/agast-helpers/shorthand";
10
10
  import * as Spamex from '@bablr/language-en-spamex';
@@ -18,30 +18,35 @@ export const grammar = class BABLRVMSpamexInstructionGrammar extends Instruction
18
18
  *Expression() {
19
19
  if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
20
20
  verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
21
- arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
22
- openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
23
- values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`language`, _t.ref`namespaceSeparatorToken`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], {
24
- openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
25
- flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
26
- language: _t.s_node(_l.Spamex, "Identifier", "Spamex"),
27
- namespaceSeparatorToken: _t.s_i_node(_l.Spamex, "Punctuator", ":"),
28
- type: _t.s_node(_l.Spamex, "Identifier", "Matcher"),
29
- intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
30
- openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
31
- alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
32
- elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
33
- openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
34
- elements: [_t.node(_l.Regex, "Character", [_t.lit("<")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("'")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("\"")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("/")], {}, {})],
35
- closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
36
- }, {
37
- negate: false
38
- })]
39
- }, {})],
40
- closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
41
- }, {}),
42
- closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
21
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.arr(), _t.ref`values[]`, _t.ref`closeToken`], {
22
+ openToken: _t.s_node(_l.Instruction, "Punctuator", "("),
23
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`open`], {
24
+ open: _t.node(_l.Spamex, "OpenNodeMatcher", [10, [[_t.ref`openToken`, _t.ref`flags`, _t.ref`language`, _t.ref`namespaceSeparatorToken`], [_t.ref`type`, _t.embedded(_t.node(_l.Spamex, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.node(_l.Spamex, "Space", [_t.lit(" ")], {}, {})), _t.ref`selfClosingTagToken`, _t.ref`closeToken`]]], {
25
+ openToken: _t.s_node(_l.Spamex, "Punctuator", "<"),
26
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
27
+ language: _t.node(_l.CSTML, "IdentifierPath", [_t.ref`segments[]`, _t.arr(), _t.ref`segments[]`], {
28
+ segments: [_t.s_node(_l.CSTML, "Identifier", "Spamex")]
29
+ }, {}),
30
+ namespaceSeparatorToken: _t.s_node(_l.CSTML, "Punctuator", ":"),
31
+ type: _t.s_node(_l.CSTML, "Identifier", "Pattern"),
32
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.arr(), _t.ref`alternatives[]`, _t.ref`closeToken`], {
33
+ openToken: _t.s_node(_l.Regex, "Punctuator", "/"),
34
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.arr(), _t.ref`elements[]`], {
35
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.arr(), _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
36
+ openToken: _t.s_node(_l.Regex, "Punctuator", "["),
37
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("<")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("'")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("\"")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("/")], {}, {})],
38
+ closeToken: _t.s_node(_l.Regex, "Punctuator", "]")
39
+ }, {
40
+ negate: false
41
+ })]
42
+ }, {})],
43
+ closeToken: _t.s_node(_l.Regex, "Punctuator", "/")
44
+ }, {}),
45
+ selfClosingTagToken: _t.s_node(_l.Spamex, "Punctuator", "/"),
46
+ closeToken: _t.s_node(_l.Spamex, "Punctuator", ">")
47
+ }, {})
43
48
  }, {})],
44
- closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
49
+ closeToken: _t.s_node(_l.Instruction, "Punctuator", ")")
45
50
  }, {})
46
51
  }, {})) {
47
52
  // done
@@ -8,7 +8,7 @@ export const dependencies = { ...Instruction.dependencies, Spamex };
8
8
 
9
9
  export const grammar = class BABLRVMSpamexInstructionGrammar extends Instruction.grammar {
10
10
  *Expression() {
11
- if (yield i`eatMatch(<Spamex:Matcher /[<'"/]/>)`) {
11
+ if (yield i`eatMatch(<Spamex:Pattern /[<'"/]/ />)`) {
12
12
  // done
13
13
  } else {
14
14
  yield* super.Expression();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bablr/language-en-bablr-vm-instruction",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "A BABLR language for BABLR VM instructions",
5
5
  "engines": {
6
6
  "node": ">=12.0.0"
@@ -23,18 +23,18 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@babel/runtime": "^7.23.2",
26
- "@bablr/agast-helpers": "0.3.2",
27
- "@bablr/agast-vm-helpers": "0.3.2",
28
- "@bablr/helpers": "0.18.0",
29
- "@bablr/language-en-blank-space": "0.3.1",
30
- "@bablr/language-en-cstml": "0.4.3",
31
- "@bablr/language-en-spamex": "0.4.3"
26
+ "@bablr/agast-helpers": "^0.5.0",
27
+ "@bablr/agast-vm-helpers": "^0.5.0",
28
+ "@bablr/helpers": "^0.20.0",
29
+ "@bablr/language-en-blank-space": "^0.5.0",
30
+ "@bablr/language-en-cstml": "^0.6.0",
31
+ "@bablr/language-en-spamex": "^0.6.0"
32
32
  },
33
33
  "devDependencies": {
34
- "@bablr/boot": "0.4.0",
34
+ "@bablr/boot": "^0.6.0",
35
35
  "@bablr/eslint-config-base": "github:bablr-lang/eslint-config-base#49f5952efed27f94ee9b94340eb1563c440bf64e",
36
- "@bablr/macrome": "0.1.3",
37
- "@bablr/macrome-generator-bablr": "0.3.1",
36
+ "@bablr/macrome": "^0.1.3",
37
+ "@bablr/macrome-generator-bablr": "^0.3.2",
38
38
  "enhanced-resolve": "^5.12.0",
39
39
  "eslint": "^8.47.0",
40
40
  "eslint-import-resolver-enhanced-resolve": "^1.0.5",