@harmoniclabs/pebble 0.1.3-dev0 → 0.1.3-dev2

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 (42) hide show
  1. package/dist/IR/IRNodes/IRConst.js +4 -6
  2. package/dist/IR/toUPLC/compileIRToUPLC.js +2 -0
  3. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/ensureProperlyForcedBuiltinsAndReturnRoot.d.ts +2 -0
  4. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/ensureProperlyForcedBuiltinsAndReturnRoot.js +163 -0
  5. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/performUplcOptimizationsAndReturnRoot.js +12 -2
  6. package/dist/IR/tree_utils/intToUtf8Bytes.d.ts +8 -0
  7. package/dist/IR/tree_utils/intToUtf8Bytes.js +49 -0
  8. package/dist/ast/nodes/statements/PebbleStmt.d.ts +2 -1
  9. package/dist/ast/nodes/statements/PebbleStmt.js +2 -0
  10. package/dist/ast/nodes/statements/TraceStmt.d.ts +11 -0
  11. package/dist/ast/nodes/statements/TraceStmt.js +10 -0
  12. package/dist/compiler/AstCompiler/AstCompiler.d.ts +11 -0
  13. package/dist/compiler/AstCompiler/AstCompiler.js +185 -0
  14. package/dist/compiler/AstCompiler/internal/_deriveContractBody/_deriveContractBody.js +8 -0
  15. package/dist/compiler/AstCompiler/internal/statements/_compileStatement.js +4 -0
  16. package/dist/compiler/AstCompiler/internal/statements/_compileTraceStmt.d.ts +4 -0
  17. package/dist/compiler/AstCompiler/internal/statements/_compileTraceStmt.js +15 -0
  18. package/dist/compiler/Compiler.d.ts +5 -0
  19. package/dist/compiler/Compiler.js +26 -2
  20. package/dist/compiler/TirCompiler/expressify/determineReassignedVariablesAndReturn.js +5 -3
  21. package/dist/compiler/TirCompiler/expressify/expressify.js +8 -0
  22. package/dist/compiler/TirCompiler/expressify/expressifyIfBranch.js +2 -0
  23. package/dist/compiler/TirCompiler/expressify/expressifyVars.js +10 -1
  24. package/dist/compiler/tir/expressions/TirExpr.d.ts +2 -1
  25. package/dist/compiler/tir/expressions/TirExpr.js +2 -0
  26. package/dist/compiler/tir/expressions/TirNativeFunc.js +3 -3
  27. package/dist/compiler/tir/expressions/TirTraceExpr.d.ts +22 -0
  28. package/dist/compiler/tir/expressions/TirTraceExpr.js +53 -0
  29. package/dist/compiler/tir/expressions/TirTypeConversionExpr.js +6 -0
  30. package/dist/compiler/tir/statements/TirStmt.d.ts +2 -1
  31. package/dist/compiler/tir/statements/TirStmt.js +2 -0
  32. package/dist/compiler/tir/statements/TirTraceStmt.d.ts +15 -0
  33. package/dist/compiler/tir/statements/TirTraceStmt.js +20 -0
  34. package/dist/index.d.ts +0 -2
  35. package/dist/index.js +0 -2
  36. package/dist/parser/Parser.d.ts +2 -0
  37. package/dist/parser/Parser.js +15 -0
  38. package/dist/tokenizer/Token.d.ts +82 -81
  39. package/dist/tokenizer/Token.js +82 -81
  40. package/dist/tokenizer/utils/tokenFromKeyword.js +2 -0
  41. package/dist/utils/array/keepSortedArrInplace.js +15 -0
  42. package/package.json +7 -10
@@ -41,129 +41,130 @@ export declare enum Token {
41
41
  Test = 38,
42
42
  Fail = 39,
43
43
  Assert = 40,
44
- Contract = 41,
45
- Param = 42,
46
- Spend = 43,
47
- Mint = 44,
48
- Certify = 45,
49
- Withdraw = 46,
50
- Propose = 47,
51
- Vote = 48,
52
- Context = 49,
44
+ Trace = 41,
45
+ Contract = 42,
46
+ Param = 43,
47
+ Spend = 44,
48
+ Mint = 45,
49
+ Certify = 46,
50
+ Withdraw = 47,
51
+ Propose = 48,
52
+ Vote = 49,
53
+ Context = 50,
53
54
  /** `{` */
54
- OpenBrace = 50,
55
+ OpenBrace = 51,
55
56
  /** `}` */
56
- CloseBrace = 51,
57
- OpenParen = 52,
58
- CloseParen = 53,
57
+ CloseBrace = 52,
58
+ OpenParen = 53,
59
+ CloseParen = 54,
59
60
  /** `[` */
60
- OpenBracket = 54,
61
+ OpenBracket = 55,
61
62
  /** `]` */
62
- CloseBracket = 55,
63
+ CloseBracket = 56,
63
64
  /** `.` */
64
- Dot = 56,
65
+ Dot = 57,
65
66
  /** `...` */
66
- Dot_Dot_Dot = 57,
67
+ Dot_Dot_Dot = 58,
67
68
  /** `;` */
68
- Semicolon = 58,
69
+ Semicolon = 59,
69
70
  /** `,` */
70
- Comma = 59,
71
+ Comma = 60,
71
72
  /** `<` */
72
- LessThan = 60,
73
+ LessThan = 61,
73
74
  /** `>` */
74
- GreaterThan = 61,
75
+ GreaterThan = 62,
75
76
  /** `<=` */
76
- LessThan_Equals = 62,
77
+ LessThan_Equals = 63,
77
78
  /** `>=` */
78
- GreaterThan_Equals = 63,
79
+ GreaterThan_Equals = 64,
79
80
  /** `==` */
80
- Equals_Equals = 64,
81
+ Equals_Equals = 65,
81
82
  /** `!=` */
82
- Exclamation_Equals = 65,
83
+ Exclamation_Equals = 66,
83
84
  /** `===` */
84
- Equals_Equals_Equals = 66,
85
+ Equals_Equals_Equals = 67,
85
86
  /** `!==` */
86
- Exclamation_Equals_Equals = 67,
87
+ Exclamation_Equals_Equals = 68,
87
88
  /** `=>` */
88
- FatArrow = 68,
89
+ FatArrow = 69,
89
90
  /** `+` */
90
- Plus = 69,
91
+ Plus = 70,
91
92
  /** `-` */
92
- Minus = 70,
93
+ Minus = 71,
93
94
  /** `**` */
94
- Asterisk_Asterisk = 71,
95
+ Asterisk_Asterisk = 72,
95
96
  /** `*` */
96
- Asterisk = 72,
97
+ Asterisk = 73,
97
98
  /** `/` */
98
- Slash = 73,
99
+ Slash = 74,
99
100
  /** `%` */
100
- Percent = 74,
101
+ Percent = 75,
101
102
  /** `++` */
102
- Plus_Plus = 75,
103
+ Plus_Plus = 76,
103
104
  /** `--` */
104
- Minus_Minus = 76,
105
+ Minus_Minus = 77,
105
106
  /** `<<` */
106
- LessThan_LessThan = 77,
107
+ LessThan_LessThan = 78,
107
108
  /** `>>` */
108
- GreaterThan_GreaterThan = 78,
109
+ GreaterThan_GreaterThan = 79,
109
110
  /** `>>>` */
110
- GreaterThan_GreaterThan_GreaterThan = 79,
111
+ GreaterThan_GreaterThan_GreaterThan = 80,
111
112
  /** `+` */
112
- Ampersand = 80,
113
+ Ampersand = 81,
113
114
  /** `|` */
114
- Bar = 81,
115
+ Bar = 82,
115
116
  /** `^` */
116
- Caret = 82,
117
+ Caret = 83,
117
118
  /** `!` */
118
- Exclamation = 83,
119
+ Exclamation = 84,
119
120
  /** `~` */
120
- Tilde = 84,
121
+ Tilde = 85,
121
122
  /** `&&` */
122
- Ampersand_Ampersand = 85,
123
+ Ampersand_Ampersand = 86,
123
124
  /** `||` */
124
- Bar_Bar = 86,
125
+ Bar_Bar = 87,
125
126
  /** `?` */
126
- Question = 87,
127
+ Question = 88,
127
128
  /** `:` */
128
- Colon = 88,
129
+ Colon = 89,
129
130
  /** `=` */
130
- Equals = 89,
131
- Plus_Equals = 90,
132
- Minus_Equals = 91,
133
- Asterisk_Equals = 92,
134
- Asterisk_Asterisk_Equals = 93,
135
- Slash_Equals = 94,
136
- Percent_Equals = 95,
137
- LessThan_LessThan_Equals = 96,
138
- GreaterThan_GreaterThan_Equals = 97,
139
- GreaterThan_GreaterThan_GreaterThan_Equals = 98,
140
- Ampersand_Equals = 99,
141
- Bar_Equals = 100,
142
- Caret_Equals = 101,
143
- At = 102,
131
+ Equals = 90,
132
+ Plus_Equals = 91,
133
+ Minus_Equals = 92,
134
+ Asterisk_Equals = 93,
135
+ Asterisk_Asterisk_Equals = 94,
136
+ Slash_Equals = 95,
137
+ Percent_Equals = 96,
138
+ LessThan_LessThan_Equals = 97,
139
+ GreaterThan_GreaterThan_Equals = 98,
140
+ GreaterThan_GreaterThan_GreaterThan_Equals = 99,
141
+ Ampersand_Equals = 100,
142
+ Bar_Equals = 101,
143
+ Caret_Equals = 102,
144
+ At = 103,
144
145
  /** `??=` */
145
- Question_Question_Equals = 103,
146
+ Question_Question_Equals = 104,
146
147
  /** `||=` */
147
- Bar_Bar_Equals = 104,
148
+ Bar_Bar_Equals = 105,
148
149
  /** `&&=` */
149
- Ampersand_Ampersand_Equals = 105,
150
+ Ampersand_Ampersand_Equals = 106,
150
151
  /** `??` */
151
- Question_Question = 106,
152
+ Question_Question = 107,
152
153
  /** `?.` */
153
- Question_Dot = 107,
154
+ Question_Dot = 108,
154
155
  /** `!.` */
155
- Exclamation_Dot = 108,
156
- Data = 109,
157
- Bytes = 110,
158
- Optional = 111,
159
- List = 112,
160
- LinearMap = 113,
161
- Runtime = 114,
162
- Identifier = 115,
163
- StringLiteral = 116,
164
- HexBytesLiteral = 117,
165
- IntegerLiteral = 118,
166
- StringTemplateLiteralQuote = 119,
167
- Invalid = 120,
168
- EndOfFile = 121
156
+ Exclamation_Dot = 109,
157
+ Data = 110,
158
+ Bytes = 111,
159
+ Optional = 112,
160
+ List = 113,
161
+ LinearMap = 114,
162
+ Runtime = 115,
163
+ Identifier = 116,
164
+ StringLiteral = 117,
165
+ HexBytesLiteral = 118,
166
+ IntegerLiteral = 119,
167
+ StringTemplateLiteralQuote = 120,
168
+ Invalid = 121,
169
+ EndOfFile = 122
169
170
  }
@@ -78,139 +78,140 @@ export var Token;
78
78
  Token[Token["Test"] = 38] = "Test";
79
79
  Token[Token["Fail"] = 39] = "Fail";
80
80
  Token[Token["Assert"] = 40] = "Assert";
81
+ Token[Token["Trace"] = 41] = "Trace";
81
82
  // contract keywords
82
- Token[Token["Contract"] = 41] = "Contract";
83
- Token[Token["Param"] = 42] = "Param";
84
- Token[Token["Spend"] = 43] = "Spend";
85
- Token[Token["Mint"] = 44] = "Mint";
86
- Token[Token["Certify"] = 45] = "Certify";
87
- Token[Token["Withdraw"] = 46] = "Withdraw";
88
- Token[Token["Propose"] = 47] = "Propose";
89
- Token[Token["Vote"] = 48] = "Vote";
90
- Token[Token["Context"] = 49] = "Context";
83
+ Token[Token["Contract"] = 42] = "Contract";
84
+ Token[Token["Param"] = 43] = "Param";
85
+ Token[Token["Spend"] = 44] = "Spend";
86
+ Token[Token["Mint"] = 45] = "Mint";
87
+ Token[Token["Certify"] = 46] = "Certify";
88
+ Token[Token["Withdraw"] = 47] = "Withdraw";
89
+ Token[Token["Propose"] = 48] = "Propose";
90
+ Token[Token["Vote"] = 49] = "Vote";
91
+ Token[Token["Context"] = 50] = "Context";
91
92
  // punctuation
92
93
  /** `{` */
93
- Token[Token["OpenBrace"] = 50] = "OpenBrace";
94
+ Token[Token["OpenBrace"] = 51] = "OpenBrace";
94
95
  /** `}` */
95
- Token[Token["CloseBrace"] = 51] = "CloseBrace";
96
- Token[Token["OpenParen"] = 52] = "OpenParen";
97
- Token[Token["CloseParen"] = 53] = "CloseParen";
96
+ Token[Token["CloseBrace"] = 52] = "CloseBrace";
97
+ Token[Token["OpenParen"] = 53] = "OpenParen";
98
+ Token[Token["CloseParen"] = 54] = "CloseParen";
98
99
  /** `[` */
99
- Token[Token["OpenBracket"] = 54] = "OpenBracket";
100
+ Token[Token["OpenBracket"] = 55] = "OpenBracket";
100
101
  /** `]` */
101
- Token[Token["CloseBracket"] = 55] = "CloseBracket";
102
+ Token[Token["CloseBracket"] = 56] = "CloseBracket";
102
103
  /** `.` */
103
- Token[Token["Dot"] = 56] = "Dot";
104
+ Token[Token["Dot"] = 57] = "Dot";
104
105
  /** `...` */
105
- Token[Token["Dot_Dot_Dot"] = 57] = "Dot_Dot_Dot";
106
+ Token[Token["Dot_Dot_Dot"] = 58] = "Dot_Dot_Dot";
106
107
  /** `;` */
107
- Token[Token["Semicolon"] = 58] = "Semicolon";
108
+ Token[Token["Semicolon"] = 59] = "Semicolon";
108
109
  /** `,` */
109
- Token[Token["Comma"] = 59] = "Comma";
110
+ Token[Token["Comma"] = 60] = "Comma";
110
111
  /** `<` */
111
- Token[Token["LessThan"] = 60] = "LessThan";
112
+ Token[Token["LessThan"] = 61] = "LessThan";
112
113
  /** `>` */
113
- Token[Token["GreaterThan"] = 61] = "GreaterThan";
114
+ Token[Token["GreaterThan"] = 62] = "GreaterThan";
114
115
  /** `<=` */
115
- Token[Token["LessThan_Equals"] = 62] = "LessThan_Equals";
116
+ Token[Token["LessThan_Equals"] = 63] = "LessThan_Equals";
116
117
  /** `>=` */
117
- Token[Token["GreaterThan_Equals"] = 63] = "GreaterThan_Equals";
118
+ Token[Token["GreaterThan_Equals"] = 64] = "GreaterThan_Equals";
118
119
  /** `==` */
119
- Token[Token["Equals_Equals"] = 64] = "Equals_Equals";
120
+ Token[Token["Equals_Equals"] = 65] = "Equals_Equals";
120
121
  /** `!=` */
121
- Token[Token["Exclamation_Equals"] = 65] = "Exclamation_Equals";
122
+ Token[Token["Exclamation_Equals"] = 66] = "Exclamation_Equals";
122
123
  /** `===` */
123
- Token[Token["Equals_Equals_Equals"] = 66] = "Equals_Equals_Equals";
124
+ Token[Token["Equals_Equals_Equals"] = 67] = "Equals_Equals_Equals";
124
125
  /** `!==` */
125
- Token[Token["Exclamation_Equals_Equals"] = 67] = "Exclamation_Equals_Equals";
126
+ Token[Token["Exclamation_Equals_Equals"] = 68] = "Exclamation_Equals_Equals";
126
127
  /** `=>` */
127
- Token[Token["FatArrow"] = 68] = "FatArrow";
128
+ Token[Token["FatArrow"] = 69] = "FatArrow";
128
129
  /** `+` */
129
- Token[Token["Plus"] = 69] = "Plus";
130
+ Token[Token["Plus"] = 70] = "Plus";
130
131
  /** `-` */
131
- Token[Token["Minus"] = 70] = "Minus";
132
+ Token[Token["Minus"] = 71] = "Minus";
132
133
  /** `**` */
133
- Token[Token["Asterisk_Asterisk"] = 71] = "Asterisk_Asterisk";
134
+ Token[Token["Asterisk_Asterisk"] = 72] = "Asterisk_Asterisk";
134
135
  /** `*` */
135
- Token[Token["Asterisk"] = 72] = "Asterisk";
136
+ Token[Token["Asterisk"] = 73] = "Asterisk";
136
137
  /** `/` */
137
- Token[Token["Slash"] = 73] = "Slash";
138
+ Token[Token["Slash"] = 74] = "Slash";
138
139
  /** `%` */
139
- Token[Token["Percent"] = 74] = "Percent";
140
+ Token[Token["Percent"] = 75] = "Percent";
140
141
  /** `++` */
141
- Token[Token["Plus_Plus"] = 75] = "Plus_Plus";
142
+ Token[Token["Plus_Plus"] = 76] = "Plus_Plus";
142
143
  /** `--` */
143
- Token[Token["Minus_Minus"] = 76] = "Minus_Minus";
144
+ Token[Token["Minus_Minus"] = 77] = "Minus_Minus";
144
145
  /** `<<` */
145
- Token[Token["LessThan_LessThan"] = 77] = "LessThan_LessThan";
146
+ Token[Token["LessThan_LessThan"] = 78] = "LessThan_LessThan";
146
147
  /** `>>` */
147
- Token[Token["GreaterThan_GreaterThan"] = 78] = "GreaterThan_GreaterThan";
148
+ Token[Token["GreaterThan_GreaterThan"] = 79] = "GreaterThan_GreaterThan";
148
149
  /** `>>>` */
149
- Token[Token["GreaterThan_GreaterThan_GreaterThan"] = 79] = "GreaterThan_GreaterThan_GreaterThan";
150
+ Token[Token["GreaterThan_GreaterThan_GreaterThan"] = 80] = "GreaterThan_GreaterThan_GreaterThan";
150
151
  /** `+` */
151
- Token[Token["Ampersand"] = 80] = "Ampersand";
152
+ Token[Token["Ampersand"] = 81] = "Ampersand";
152
153
  /** `|` */
153
- Token[Token["Bar"] = 81] = "Bar";
154
+ Token[Token["Bar"] = 82] = "Bar";
154
155
  /** `^` */
155
- Token[Token["Caret"] = 82] = "Caret";
156
+ Token[Token["Caret"] = 83] = "Caret";
156
157
  /** `!` */
157
- Token[Token["Exclamation"] = 83] = "Exclamation";
158
+ Token[Token["Exclamation"] = 84] = "Exclamation";
158
159
  /** `~` */
159
- Token[Token["Tilde"] = 84] = "Tilde";
160
+ Token[Token["Tilde"] = 85] = "Tilde";
160
161
  /** `&&` */
161
- Token[Token["Ampersand_Ampersand"] = 85] = "Ampersand_Ampersand";
162
+ Token[Token["Ampersand_Ampersand"] = 86] = "Ampersand_Ampersand";
162
163
  /** `||` */
163
- Token[Token["Bar_Bar"] = 86] = "Bar_Bar";
164
+ Token[Token["Bar_Bar"] = 87] = "Bar_Bar";
164
165
  /** `?` */
165
- Token[Token["Question"] = 87] = "Question";
166
+ Token[Token["Question"] = 88] = "Question";
166
167
  /** `:` */
167
- Token[Token["Colon"] = 88] = "Colon";
168
+ Token[Token["Colon"] = 89] = "Colon";
168
169
  /** `=` */
169
- Token[Token["Equals"] = 89] = "Equals";
170
- Token[Token["Plus_Equals"] = 90] = "Plus_Equals";
171
- Token[Token["Minus_Equals"] = 91] = "Minus_Equals";
172
- Token[Token["Asterisk_Equals"] = 92] = "Asterisk_Equals";
173
- Token[Token["Asterisk_Asterisk_Equals"] = 93] = "Asterisk_Asterisk_Equals";
174
- Token[Token["Slash_Equals"] = 94] = "Slash_Equals";
175
- Token[Token["Percent_Equals"] = 95] = "Percent_Equals";
176
- Token[Token["LessThan_LessThan_Equals"] = 96] = "LessThan_LessThan_Equals";
177
- Token[Token["GreaterThan_GreaterThan_Equals"] = 97] = "GreaterThan_GreaterThan_Equals";
178
- Token[Token["GreaterThan_GreaterThan_GreaterThan_Equals"] = 98] = "GreaterThan_GreaterThan_GreaterThan_Equals";
179
- Token[Token["Ampersand_Equals"] = 99] = "Ampersand_Equals";
180
- Token[Token["Bar_Equals"] = 100] = "Bar_Equals";
181
- Token[Token["Caret_Equals"] = 101] = "Caret_Equals";
182
- Token[Token["At"] = 102] = "At";
170
+ Token[Token["Equals"] = 90] = "Equals";
171
+ Token[Token["Plus_Equals"] = 91] = "Plus_Equals";
172
+ Token[Token["Minus_Equals"] = 92] = "Minus_Equals";
173
+ Token[Token["Asterisk_Equals"] = 93] = "Asterisk_Equals";
174
+ Token[Token["Asterisk_Asterisk_Equals"] = 94] = "Asterisk_Asterisk_Equals";
175
+ Token[Token["Slash_Equals"] = 95] = "Slash_Equals";
176
+ Token[Token["Percent_Equals"] = 96] = "Percent_Equals";
177
+ Token[Token["LessThan_LessThan_Equals"] = 97] = "LessThan_LessThan_Equals";
178
+ Token[Token["GreaterThan_GreaterThan_Equals"] = 98] = "GreaterThan_GreaterThan_Equals";
179
+ Token[Token["GreaterThan_GreaterThan_GreaterThan_Equals"] = 99] = "GreaterThan_GreaterThan_GreaterThan_Equals";
180
+ Token[Token["Ampersand_Equals"] = 100] = "Ampersand_Equals";
181
+ Token[Token["Bar_Equals"] = 101] = "Bar_Equals";
182
+ Token[Token["Caret_Equals"] = 102] = "Caret_Equals";
183
+ Token[Token["At"] = 103] = "At";
183
184
  /** `??=` */
184
- Token[Token["Question_Question_Equals"] = 103] = "Question_Question_Equals";
185
+ Token[Token["Question_Question_Equals"] = 104] = "Question_Question_Equals";
185
186
  /** `||=` */
186
- Token[Token["Bar_Bar_Equals"] = 104] = "Bar_Bar_Equals";
187
+ Token[Token["Bar_Bar_Equals"] = 105] = "Bar_Bar_Equals";
187
188
  /** `&&=` */
188
- Token[Token["Ampersand_Ampersand_Equals"] = 105] = "Ampersand_Ampersand_Equals";
189
+ Token[Token["Ampersand_Ampersand_Equals"] = 106] = "Ampersand_Ampersand_Equals";
189
190
  /** `??` */
190
- Token[Token["Question_Question"] = 106] = "Question_Question";
191
+ Token[Token["Question_Question"] = 107] = "Question_Question";
191
192
  /** `?.` */
192
- Token[Token["Question_Dot"] = 107] = "Question_Dot";
193
+ Token[Token["Question_Dot"] = 108] = "Question_Dot";
193
194
  /** `!.` */
194
- Token[Token["Exclamation_Dot"] = 108] = "Exclamation_Dot";
195
+ Token[Token["Exclamation_Dot"] = 109] = "Exclamation_Dot";
195
196
  // custom native types for pebble
196
- Token[Token["Data"] = 109] = "Data";
197
- Token[Token["Bytes"] = 110] = "Bytes";
198
- Token[Token["Optional"] = 111] = "Optional";
199
- Token[Token["List"] = 112] = "List";
200
- Token[Token["LinearMap"] = 113] = "LinearMap";
197
+ Token[Token["Data"] = 110] = "Data";
198
+ Token[Token["Bytes"] = 111] = "Bytes";
199
+ Token[Token["Optional"] = 112] = "Optional";
200
+ Token[Token["List"] = 113] = "List";
201
+ Token[Token["LinearMap"] = 114] = "LinearMap";
201
202
  // struct decl modifiers
202
203
  // taggedModifier, // `tagged` data struct
203
- Token[Token["Runtime"] = 114] = "Runtime";
204
+ Token[Token["Runtime"] = 115] = "Runtime";
204
205
  // literals
205
- Token[Token["Identifier"] = 115] = "Identifier";
206
- Token[Token["StringLiteral"] = 116] = "StringLiteral";
207
- Token[Token["HexBytesLiteral"] = 117] = "HexBytesLiteral";
208
- Token[Token["IntegerLiteral"] = 118] = "IntegerLiteral";
206
+ Token[Token["Identifier"] = 116] = "Identifier";
207
+ Token[Token["StringLiteral"] = 117] = "StringLiteral";
208
+ Token[Token["HexBytesLiteral"] = 118] = "HexBytesLiteral";
209
+ Token[Token["IntegerLiteral"] = 119] = "IntegerLiteral";
209
210
  // FloatLiteral,
210
- Token[Token["StringTemplateLiteralQuote"] = 119] = "StringTemplateLiteralQuote";
211
+ Token[Token["StringTemplateLiteralQuote"] = 120] = "StringTemplateLiteralQuote";
211
212
  // meta
212
- Token[Token["Invalid"] = 120] = "Invalid";
213
- Token[Token["EndOfFile"] = 121] = "EndOfFile";
213
+ Token[Token["Invalid"] = 121] = "Invalid";
214
+ Token[Token["EndOfFile"] = 122] = "EndOfFile";
214
215
  })(Token || (Token = {}));
215
216
  Object.freeze(Token);
216
217
  /*
@@ -203,6 +203,8 @@ export function tokenFromKeyword(text) {
203
203
  return Token.Type;
204
204
  break;
205
205
  }
206
+ if (text === "trace")
207
+ return Token.Trace;
206
208
  // if (text === "try") return Token.Try;
207
209
  // if (text === "throw") return Token.Throw;
208
210
  // if (text === "typeof") return Token.TypeOf;
@@ -23,6 +23,21 @@ export function keepSortedStrArrInplace(target, source) {
23
23
  }
24
24
  continue; // element is in source, check next without removing this
25
25
  }
26
+ // elem > fstSrc: source has elements not in target, advance source
27
+ if (elem > fstSrc) {
28
+ while (source.length > 0 && fstSrc < elem) {
29
+ fstSrc = source.shift();
30
+ }
31
+ if (fstSrc === elem) {
32
+ fstSrc = source.shift();
33
+ if (!fstSrc) {
34
+ target.length = i + 1;
35
+ return target;
36
+ }
37
+ continue;
38
+ }
39
+ // fstSrc > elem or source exhausted: elem not in source, fall through to remove
40
+ }
26
41
  // not equal, remove the element
27
42
  target.splice(i, 1);
28
43
  i--; // adjust index since we removed an element
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harmoniclabs/pebble",
3
- "version": "0.1.3-dev0",
3
+ "version": "0.1.3-dev2",
4
4
  "description": "A simple, yet rock solid, functional language with an imperative bias, targeting UPLC",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -51,25 +51,22 @@
51
51
  "homepage": "https://github.com/HarmonicLabs/pebble#readme",
52
52
  "dependencies": {
53
53
  "@harmoniclabs/bigint-utils": "^1.0.0",
54
- "@harmoniclabs/bytestring": "^1.0.0",
55
- "@harmoniclabs/cbor": "^1.6.6",
54
+ "@harmoniclabs/cardano-costmodels-ts": "^1.4.0",
55
+ "@harmoniclabs/cbor": "^2.0.1",
56
56
  "@harmoniclabs/crypto": "^0.3.0",
57
57
  "@harmoniclabs/obj-utils": "^1.0.0",
58
- "@harmoniclabs/pair": "^1.0.0",
59
- "@harmoniclabs/plutus-data": "^1.2.6",
60
- "@harmoniclabs/plutus-machine": "^2.1.1",
58
+ "@harmoniclabs/plutus-data": "^2.0.1",
59
+ "@harmoniclabs/plutus-machine": "^3.0.0",
61
60
  "@harmoniclabs/uint8array-utils": "^1.0.4",
62
- "@harmoniclabs/uplc": "^1.4.1"
61
+ "@harmoniclabs/uplc": "^2.0.5"
63
62
  },
64
63
  "devDependencies": {
65
64
  "@babel/preset-env": "^7.18.6",
66
65
  "@babel/preset-typescript": "^7.18.6",
67
- "@harmoniclabs/cardano-costmodels-ts": "^1.3.0",
68
- "@harmoniclabs/cardano-ledger-ts": "^0.3.2",
69
66
  "@types/jest": "^28.1.4",
70
67
  "@types/node": "^18.14.6",
71
68
  "jest": "^29.4.3",
72
- "jest-environment-jsdom": "^29.4.3",
69
+ "jest-environment-jsdom": "^30.3.0",
73
70
  "tsc-alias": "^1.7.1",
74
71
  "typescript": "^4.6.3"
75
72
  },