circuitscript 0.1.4 → 0.1.7
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/cjs/BaseVisitor.js +149 -80
- package/dist/cjs/SemanticTokenVisitor.js +19 -13
- package/dist/cjs/antlr/CircuitScriptParser.js +711 -671
- package/dist/cjs/builtinMethods.js +48 -22
- package/dist/cjs/draw_symbols.js +4 -1
- package/dist/cjs/environment.js +118 -0
- package/dist/cjs/execute.js +98 -46
- package/dist/cjs/geometry.js +1 -0
- package/dist/cjs/globals.js +14 -7
- package/dist/cjs/helpers.js +142 -150
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/layout.js +39 -14
- package/dist/cjs/main.js +34 -21
- package/dist/cjs/objects/ClassComponent.js +4 -1
- package/dist/cjs/objects/ExecutionScope.js +40 -2
- package/dist/cjs/objects/ParamDefinition.js +15 -15
- package/dist/cjs/parser.js +27 -21
- package/dist/cjs/regenerate-tests.js +9 -6
- package/dist/cjs/render.js +3 -1
- package/dist/cjs/sizing.js +10 -60
- package/dist/cjs/utils.js +148 -17
- package/dist/cjs/validate/SymbolTable.js +96 -0
- package/dist/cjs/validate/SymbolValidatorResolveVisitor.js +14 -0
- package/dist/cjs/validate/SymbolValidatorVisitor.js +170 -0
- package/dist/cjs/validate.js +52 -44
- package/dist/cjs/visitor.js +149 -31
- package/dist/esm/{BaseVisitor.mjs → BaseVisitor.js} +124 -56
- package/dist/esm/{SemanticTokenVisitor.mjs → SemanticTokenVisitor.js} +17 -11
- package/dist/esm/antlr/{CircuitScriptParser.mjs → CircuitScriptParser.js} +711 -671
- package/dist/esm/{builtinMethods.mjs → builtinMethods.js} +40 -14
- package/dist/esm/{draw_symbols.mjs → draw_symbols.js} +11 -8
- package/dist/esm/environment.js +110 -0
- package/dist/esm/{execute.mjs → execute.js} +111 -58
- package/dist/esm/{export.mjs → export.js} +2 -2
- package/dist/esm/{geometry.mjs → geometry.js} +6 -5
- package/dist/esm/{globals.mjs → globals.js} +9 -2
- package/dist/esm/helpers.js +377 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/{layout.mjs → layout.js} +44 -22
- package/dist/esm/{lexer.mjs → lexer.js} +2 -2
- package/dist/esm/{main.mjs → main.js} +36 -23
- package/dist/esm/objects/{ClassComponent.mjs → ClassComponent.js} +9 -5
- package/dist/esm/objects/{ExecutionScope.mjs → ExecutionScope.js} +40 -2
- package/dist/esm/objects/{Frame.mjs → Frame.js} +1 -1
- package/dist/esm/objects/{ParamDefinition.mjs → ParamDefinition.js} +1 -1
- package/dist/esm/objects/{PinDefinition.mjs → PinDefinition.js} +1 -1
- package/dist/esm/parser.js +71 -0
- package/dist/esm/{regenerate-tests.mjs → regenerate-tests.js} +10 -7
- package/dist/esm/{render.mjs → render.js} +11 -9
- package/dist/esm/{sizing.mjs → sizing.js} +11 -36
- package/dist/esm/utils.js +286 -0
- package/dist/esm/validate/SymbolTable.js +90 -0
- package/dist/esm/validate/SymbolValidatorResolveVisitor.js +10 -0
- package/dist/esm/validate/SymbolValidatorVisitor.js +163 -0
- package/dist/esm/validate.js +86 -0
- package/dist/esm/{visitor.mjs → visitor.js} +160 -42
- package/dist/fonts/Arial.ttf +0 -0
- package/dist/fonts/Inter-Bold.ttf +0 -0
- package/dist/fonts/Inter-Regular.ttf +0 -0
- package/dist/fonts/OpenSans-Regular.ttf +0 -0
- package/dist/fonts/Roboto-Regular.ttf +0 -0
- package/dist/libs/lib.cst +423 -0
- package/dist/types/BaseVisitor.d.ts +36 -22
- package/dist/types/SemanticTokenVisitor.d.ts +6 -5
- package/dist/types/antlr/CircuitScriptParser.d.ts +4 -2
- package/dist/types/builtinMethods.d.ts +3 -2
- package/dist/types/draw_symbols.d.ts +2 -6
- package/dist/types/environment.d.ts +31 -0
- package/dist/types/execute.d.ts +2 -3
- package/dist/types/globals.d.ts +7 -2
- package/dist/types/helpers.d.ts +12 -14
- package/dist/types/index.d.ts +5 -0
- package/dist/types/objects/ClassComponent.d.ts +2 -3
- package/dist/types/objects/ExecutionScope.d.ts +20 -6
- package/dist/types/objects/types.d.ts +6 -1
- package/dist/types/parser.d.ts +7 -11
- package/dist/types/sizing.d.ts +0 -3
- package/dist/types/utils.d.ts +33 -4
- package/dist/types/validate/SymbolTable.d.ts +40 -0
- package/dist/types/validate/SymbolValidatorResolveVisitor.d.ts +7 -0
- package/dist/types/validate/SymbolValidatorVisitor.d.ts +32 -0
- package/dist/types/validate.d.ts +1 -1
- package/libs/lib.cst +12 -22
- package/package.json +14 -13
- package/dist/cjs/SymbolValidatorVisitor.js +0 -233
- package/dist/esm/SymbolValidatorVisitor.mjs +0 -222
- package/dist/esm/helpers.mjs +0 -380
- package/dist/esm/index.mjs +0 -15
- package/dist/esm/parser.mjs +0 -64
- package/dist/esm/utils.mjs +0 -169
- package/dist/esm/validate.mjs +0 -74
- package/dist/types/SymbolValidatorVisitor.d.ts +0 -61
- package/dist/types/layout.d.ts +0 -148
- /package/dist/esm/antlr/{CircuitScriptLexer.mjs → CircuitScriptLexer.js} +0 -0
- /package/dist/esm/antlr/{CircuitScriptVisitor.mjs → CircuitScriptVisitor.js} +0 -0
- /package/dist/esm/{fonts.mjs → fonts.js} +0 -0
- /package/dist/esm/{logger.mjs → logger.js} +0 -0
- /package/dist/esm/objects/{Net.mjs → Net.js} +0 -0
- /package/dist/esm/objects/{PinTypes.mjs → PinTypes.js} +0 -0
- /package/dist/esm/objects/{Wire.mjs → Wire.js} +0 -0
- /package/dist/esm/objects/{types.mjs → types.js} +0 -0
- /package/dist/esm/{server.mjs → server.js} +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { Assignment_exprContext } from "./antlr/CircuitScriptParser";
|
|
2
|
-
import { BaseVisitor } from "./BaseVisitor";
|
|
1
|
+
import { Assignment_exprContext } from "./antlr/CircuitScriptParser.js";
|
|
2
|
+
import { BaseVisitor } from "./BaseVisitor.js";
|
|
3
|
+
import { buildInMethodNamesList } from "./builtinMethods.js";
|
|
4
|
+
import { SymbolValidatorContext } from "./globals.js";
|
|
3
5
|
export class SemanticTokensVisitor extends BaseVisitor {
|
|
4
6
|
parsedTokens = [];
|
|
5
7
|
lexer;
|
|
6
8
|
script;
|
|
7
9
|
semanticTokens = new Map();
|
|
8
|
-
constructor(silent = false, onErrorHandler = null,
|
|
9
|
-
super(silent, onErrorHandler,
|
|
10
|
+
constructor(silent = false, onErrorHandler = null, environment, lexer, script) {
|
|
11
|
+
super(silent, onErrorHandler, environment);
|
|
10
12
|
this.lexer = lexer;
|
|
11
13
|
this.script = script;
|
|
12
14
|
}
|
|
@@ -17,7 +19,11 @@ export class SemanticTokensVisitor extends BaseVisitor {
|
|
|
17
19
|
});
|
|
18
20
|
};
|
|
19
21
|
visitFunction_call_expr = (ctx) => {
|
|
20
|
-
|
|
22
|
+
const modifiers = [];
|
|
23
|
+
if (buildInMethodNamesList.indexOf(ctx.ID().getText()) !== -1) {
|
|
24
|
+
modifiers.push('defaultLibrary');
|
|
25
|
+
}
|
|
26
|
+
this.addSemanticToken(ctx.ID(), modifiers, 'function');
|
|
21
27
|
};
|
|
22
28
|
visitFunction_def_expr = (ctx) => {
|
|
23
29
|
const functionName = ctx.ID().getText();
|
|
@@ -26,7 +32,7 @@ export class SemanticTokensVisitor extends BaseVisitor {
|
|
|
26
32
|
if (ctxFunctionArgsExpr) {
|
|
27
33
|
this.visit(ctxFunctionArgsExpr);
|
|
28
34
|
}
|
|
29
|
-
const executionContextName = functionName +
|
|
35
|
+
const executionContextName = functionName + SymbolValidatorContext;
|
|
30
36
|
const newExecutor = this.enterNewChildContext(this.executionStack, this.getExecutor(), executionContextName, { netNamespace: "" }, [], []);
|
|
31
37
|
this.runExpressions(newExecutor, ctx.function_expr());
|
|
32
38
|
this.executionStack.pop();
|
|
@@ -39,9 +45,8 @@ export class SemanticTokensVisitor extends BaseVisitor {
|
|
|
39
45
|
};
|
|
40
46
|
visitCreate_graphic_expr = (ctx) => {
|
|
41
47
|
this.addSemanticToken(ctx.Create(), ['defaultLibrary'], 'function');
|
|
42
|
-
ctx.
|
|
43
|
-
|
|
44
|
-
});
|
|
48
|
+
const graphicsExpressionsCtx = ctx.graphic_expressions_block();
|
|
49
|
+
this.visitResult(graphicsExpressionsCtx);
|
|
45
50
|
};
|
|
46
51
|
visitProperty_key_expr = (ctx) => {
|
|
47
52
|
let useValue = null;
|
|
@@ -61,7 +66,7 @@ export class SemanticTokensVisitor extends BaseVisitor {
|
|
|
61
66
|
this.addSemanticToken(useValue, [], 'property');
|
|
62
67
|
}
|
|
63
68
|
};
|
|
64
|
-
|
|
69
|
+
visitGraphicCommandExpr = (ctx) => {
|
|
65
70
|
let useValue = null;
|
|
66
71
|
const ctxId = ctx.ID();
|
|
67
72
|
const ctxPin = ctx.Pin();
|
|
@@ -179,7 +184,7 @@ const languageKeywords = [
|
|
|
179
184
|
'break', 'branch', 'create', 'component',
|
|
180
185
|
'graphic', 'wire', 'pin', 'add', 'at', 'to',
|
|
181
186
|
'point', 'join', 'parallel', 'return', 'def', 'import',
|
|
182
|
-
'true', 'false', 'nc', 'frame',
|
|
187
|
+
'true', 'false', 'nc', 'sheet', 'frame', 'if', 'for',
|
|
183
188
|
];
|
|
184
189
|
const operatorKeywords = [
|
|
185
190
|
'at', 'to', 'wire', 'add', 'frame', 'join', 'parallel', 'point'
|
|
@@ -203,6 +208,7 @@ function resolveTokenType(tokenType) {
|
|
|
203
208
|
case 'ID':
|
|
204
209
|
return 'variable';
|
|
205
210
|
case 'Define':
|
|
211
|
+
case 'BOOLEAN_VALUE':
|
|
206
212
|
return 'keyword';
|
|
207
213
|
case 'COMMENT':
|
|
208
214
|
return 'comment';
|