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.
Files changed (102) hide show
  1. package/dist/cjs/BaseVisitor.js +149 -80
  2. package/dist/cjs/SemanticTokenVisitor.js +19 -13
  3. package/dist/cjs/antlr/CircuitScriptParser.js +711 -671
  4. package/dist/cjs/builtinMethods.js +48 -22
  5. package/dist/cjs/draw_symbols.js +4 -1
  6. package/dist/cjs/environment.js +118 -0
  7. package/dist/cjs/execute.js +98 -46
  8. package/dist/cjs/geometry.js +1 -0
  9. package/dist/cjs/globals.js +14 -7
  10. package/dist/cjs/helpers.js +142 -150
  11. package/dist/cjs/index.js +5 -0
  12. package/dist/cjs/layout.js +39 -14
  13. package/dist/cjs/main.js +34 -21
  14. package/dist/cjs/objects/ClassComponent.js +4 -1
  15. package/dist/cjs/objects/ExecutionScope.js +40 -2
  16. package/dist/cjs/objects/ParamDefinition.js +15 -15
  17. package/dist/cjs/parser.js +27 -21
  18. package/dist/cjs/regenerate-tests.js +9 -6
  19. package/dist/cjs/render.js +3 -1
  20. package/dist/cjs/sizing.js +10 -60
  21. package/dist/cjs/utils.js +148 -17
  22. package/dist/cjs/validate/SymbolTable.js +96 -0
  23. package/dist/cjs/validate/SymbolValidatorResolveVisitor.js +14 -0
  24. package/dist/cjs/validate/SymbolValidatorVisitor.js +170 -0
  25. package/dist/cjs/validate.js +52 -44
  26. package/dist/cjs/visitor.js +149 -31
  27. package/dist/esm/{BaseVisitor.mjs → BaseVisitor.js} +124 -56
  28. package/dist/esm/{SemanticTokenVisitor.mjs → SemanticTokenVisitor.js} +17 -11
  29. package/dist/esm/antlr/{CircuitScriptParser.mjs → CircuitScriptParser.js} +711 -671
  30. package/dist/esm/{builtinMethods.mjs → builtinMethods.js} +40 -14
  31. package/dist/esm/{draw_symbols.mjs → draw_symbols.js} +11 -8
  32. package/dist/esm/environment.js +110 -0
  33. package/dist/esm/{execute.mjs → execute.js} +111 -58
  34. package/dist/esm/{export.mjs → export.js} +2 -2
  35. package/dist/esm/{geometry.mjs → geometry.js} +6 -5
  36. package/dist/esm/{globals.mjs → globals.js} +9 -2
  37. package/dist/esm/helpers.js +377 -0
  38. package/dist/esm/index.js +20 -0
  39. package/dist/esm/{layout.mjs → layout.js} +44 -22
  40. package/dist/esm/{lexer.mjs → lexer.js} +2 -2
  41. package/dist/esm/{main.mjs → main.js} +36 -23
  42. package/dist/esm/objects/{ClassComponent.mjs → ClassComponent.js} +9 -5
  43. package/dist/esm/objects/{ExecutionScope.mjs → ExecutionScope.js} +40 -2
  44. package/dist/esm/objects/{Frame.mjs → Frame.js} +1 -1
  45. package/dist/esm/objects/{ParamDefinition.mjs → ParamDefinition.js} +1 -1
  46. package/dist/esm/objects/{PinDefinition.mjs → PinDefinition.js} +1 -1
  47. package/dist/esm/parser.js +71 -0
  48. package/dist/esm/{regenerate-tests.mjs → regenerate-tests.js} +10 -7
  49. package/dist/esm/{render.mjs → render.js} +11 -9
  50. package/dist/esm/{sizing.mjs → sizing.js} +11 -36
  51. package/dist/esm/utils.js +286 -0
  52. package/dist/esm/validate/SymbolTable.js +90 -0
  53. package/dist/esm/validate/SymbolValidatorResolveVisitor.js +10 -0
  54. package/dist/esm/validate/SymbolValidatorVisitor.js +163 -0
  55. package/dist/esm/validate.js +86 -0
  56. package/dist/esm/{visitor.mjs → visitor.js} +160 -42
  57. package/dist/fonts/Arial.ttf +0 -0
  58. package/dist/fonts/Inter-Bold.ttf +0 -0
  59. package/dist/fonts/Inter-Regular.ttf +0 -0
  60. package/dist/fonts/OpenSans-Regular.ttf +0 -0
  61. package/dist/fonts/Roboto-Regular.ttf +0 -0
  62. package/dist/libs/lib.cst +423 -0
  63. package/dist/types/BaseVisitor.d.ts +36 -22
  64. package/dist/types/SemanticTokenVisitor.d.ts +6 -5
  65. package/dist/types/antlr/CircuitScriptParser.d.ts +4 -2
  66. package/dist/types/builtinMethods.d.ts +3 -2
  67. package/dist/types/draw_symbols.d.ts +2 -6
  68. package/dist/types/environment.d.ts +31 -0
  69. package/dist/types/execute.d.ts +2 -3
  70. package/dist/types/globals.d.ts +7 -2
  71. package/dist/types/helpers.d.ts +12 -14
  72. package/dist/types/index.d.ts +5 -0
  73. package/dist/types/objects/ClassComponent.d.ts +2 -3
  74. package/dist/types/objects/ExecutionScope.d.ts +20 -6
  75. package/dist/types/objects/types.d.ts +6 -1
  76. package/dist/types/parser.d.ts +7 -11
  77. package/dist/types/sizing.d.ts +0 -3
  78. package/dist/types/utils.d.ts +33 -4
  79. package/dist/types/validate/SymbolTable.d.ts +40 -0
  80. package/dist/types/validate/SymbolValidatorResolveVisitor.d.ts +7 -0
  81. package/dist/types/validate/SymbolValidatorVisitor.d.ts +32 -0
  82. package/dist/types/validate.d.ts +1 -1
  83. package/libs/lib.cst +12 -22
  84. package/package.json +14 -13
  85. package/dist/cjs/SymbolValidatorVisitor.js +0 -233
  86. package/dist/esm/SymbolValidatorVisitor.mjs +0 -222
  87. package/dist/esm/helpers.mjs +0 -380
  88. package/dist/esm/index.mjs +0 -15
  89. package/dist/esm/parser.mjs +0 -64
  90. package/dist/esm/utils.mjs +0 -169
  91. package/dist/esm/validate.mjs +0 -74
  92. package/dist/types/SymbolValidatorVisitor.d.ts +0 -61
  93. package/dist/types/layout.d.ts +0 -148
  94. /package/dist/esm/antlr/{CircuitScriptLexer.mjs → CircuitScriptLexer.js} +0 -0
  95. /package/dist/esm/antlr/{CircuitScriptVisitor.mjs → CircuitScriptVisitor.js} +0 -0
  96. /package/dist/esm/{fonts.mjs → fonts.js} +0 -0
  97. /package/dist/esm/{logger.mjs → logger.js} +0 -0
  98. /package/dist/esm/objects/{Net.mjs → Net.js} +0 -0
  99. /package/dist/esm/objects/{PinTypes.mjs → PinTypes.js} +0 -0
  100. /package/dist/esm/objects/{Wire.mjs → Wire.js} +0 -0
  101. /package/dist/esm/objects/{types.mjs → types.js} +0 -0
  102. /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, currentDirectory, defaultsLibsPath, lexer, script) {
9
- super(silent, onErrorHandler, currentDirectory, defaultsLibsPath);
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
- this.addSemanticToken(ctx.ID(), [], 'function');
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 + '_validate';
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.graphic_expr().forEach(graphic_expr => {
43
- this.visit(graphic_expr);
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
- visitGraphic_expr = (ctx) => {
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';