binja 0.6.0 → 0.7.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.
package/dist/cli.js CHANGED
@@ -20,103 +20,6 @@ var KEYWORDS = {
20
20
  in: "NAME" /* NAME */
21
21
  };
22
22
 
23
- // src/lexer/hybrid.ts
24
- var _tokenizeBatchFn = null;
25
- function checkNative() {
26
- return false;
27
- }
28
- var NATIVE_TO_TS = {
29
- 0: "TEXT" /* TEXT */,
30
- 1: "VARIABLE_START" /* VARIABLE_START */,
31
- 2: "VARIABLE_END" /* VARIABLE_END */,
32
- 3: "BLOCK_START" /* BLOCK_START */,
33
- 4: "BLOCK_END" /* BLOCK_END */,
34
- 5: "COMMENT_START" /* COMMENT_START */,
35
- 6: "COMMENT_END" /* COMMENT_END */,
36
- 7: "NAME" /* NAME */,
37
- 8: "STRING" /* STRING */,
38
- 9: "NUMBER" /* NUMBER */,
39
- 10: "NAME" /* NAME */,
40
- 11: "DOT" /* DOT */,
41
- 12: "COMMA" /* COMMA */,
42
- 13: "PIPE" /* PIPE */,
43
- 14: "COLON" /* COLON */,
44
- 15: "LPAREN" /* LPAREN */,
45
- 16: "RPAREN" /* RPAREN */,
46
- 17: "LBRACKET" /* LBRACKET */,
47
- 18: "RBRACKET" /* RBRACKET */,
48
- 19: "LBRACE" /* LBRACE */,
49
- 20: "RBRACE" /* RBRACE */,
50
- 21: "ASSIGN" /* ASSIGN */,
51
- 22: "EOF" /* EOF */
52
- };
53
- var OPERATOR_TO_TYPE = {
54
- "==": "EQ" /* EQ */,
55
- "!=": "NE" /* NE */,
56
- "<": "LT" /* LT */,
57
- ">": "GT" /* GT */,
58
- "<=": "LE" /* LE */,
59
- ">=": "GE" /* GE */,
60
- "+": "ADD" /* ADD */,
61
- "-": "SUB" /* SUB */,
62
- "*": "MUL" /* MUL */,
63
- "/": "DIV" /* DIV */,
64
- "%": "MOD" /* MOD */,
65
- "~": "TILDE" /* TILDE */
66
- };
67
- var KEYWORD_TO_TYPE = {
68
- and: "AND" /* AND */,
69
- or: "OR" /* OR */,
70
- not: "NOT" /* NOT */
71
- };
72
- function isNativeAccelerated() {
73
- return checkNative();
74
- }
75
- function tokenizeNative(source) {
76
- if (!checkNative() || !_tokenizeBatchFn)
77
- return null;
78
- if (source.length === 0) {
79
- return [{ type: "EOF" /* EOF */, value: "", line: 1, column: 1 }];
80
- }
81
- const rawTokens = _tokenizeBatchFn(source);
82
- const lineStarts = [0];
83
- for (let i = 0;i < source.length; i++) {
84
- if (source[i] === `
85
- `)
86
- lineStarts.push(i + 1);
87
- }
88
- const tokens = new Array(rawTokens.length);
89
- for (let i = 0;i < rawTokens.length; i++) {
90
- const [nativeType, start, end] = rawTokens[i];
91
- let value = source.slice(start, end);
92
- let lo = 0, hi = lineStarts.length - 1;
93
- while (lo < hi) {
94
- const mid = lo + hi + 1 >> 1;
95
- if (lineStarts[mid] <= start)
96
- lo = mid;
97
- else
98
- hi = mid - 1;
99
- }
100
- const line = lo + 1;
101
- const column = start - lineStarts[lo] + 1;
102
- let type = NATIVE_TO_TS[nativeType] ?? "NAME" /* NAME */;
103
- if (nativeType === 10 && OPERATOR_TO_TYPE[value]) {
104
- type = OPERATOR_TO_TYPE[value];
105
- } else if (type === "NAME" /* NAME */ && KEYWORD_TO_TYPE[value]) {
106
- type = KEYWORD_TO_TYPE[value];
107
- }
108
- if (type === "STRING" /* STRING */ && value.length >= 2) {
109
- const first = value[0];
110
- const last = value[value.length - 1];
111
- if (first === '"' && last === '"' || first === "'" && last === "'") {
112
- value = value.slice(1, -1);
113
- }
114
- }
115
- tokens[i] = { type, value, line, column };
116
- }
117
- return tokens;
118
- }
119
-
120
23
  // src/errors/index.ts
121
24
  var colors = {
122
25
  red: "\x1B[31m",
@@ -202,7 +105,6 @@ class Lexer {
202
105
  blockEnd;
203
106
  commentStart;
204
107
  commentEnd;
205
- useNative;
206
108
  constructor(source, options = {}) {
207
109
  this.state = {
208
110
  source,
@@ -217,15 +119,8 @@ class Lexer {
217
119
  this.blockEnd = options.blockEnd ?? "%}";
218
120
  this.commentStart = options.commentStart ?? "{#";
219
121
  this.commentEnd = options.commentEnd ?? "#}";
220
- const hasCustomDelimiters = options.variableStart !== undefined || options.variableEnd !== undefined || options.blockStart !== undefined || options.blockEnd !== undefined || options.commentStart !== undefined || options.commentEnd !== undefined;
221
- this.useNative = !hasCustomDelimiters && isNativeAccelerated();
222
122
  }
223
123
  tokenize() {
224
- if (this.useNative) {
225
- const nativeTokens = tokenizeNative(this.state.source);
226
- if (nativeTokens)
227
- return nativeTokens;
228
- }
229
124
  while (!this.isAtEnd()) {
230
125
  this.scanToken();
231
126
  }