circuitscript 0.1.29 → 0.1.32

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 (71) hide show
  1. package/dist/cjs/BaseVisitor.js +185 -22
  2. package/dist/cjs/RefdesAnnotationVisitor.js +27 -10
  3. package/dist/cjs/antlr/CircuitScriptLexer.js +241 -236
  4. package/dist/cjs/antlr/CircuitScriptParser.js +1197 -901
  5. package/dist/cjs/builtinMethods.js +6 -2
  6. package/dist/cjs/draw_symbols.js +38 -34
  7. package/dist/cjs/environment.js +28 -4
  8. package/dist/cjs/execute.js +195 -125
  9. package/dist/cjs/globals.js +6 -1
  10. package/dist/cjs/graph.js +14 -12
  11. package/dist/cjs/helpers.js +90 -17
  12. package/dist/cjs/layout.js +50 -25
  13. package/dist/cjs/main.js +16 -14
  14. package/dist/cjs/objects/ClassComponent.js +199 -30
  15. package/dist/cjs/objects/ExecutionScope.js +9 -0
  16. package/dist/cjs/objects/types.js +25 -2
  17. package/dist/cjs/parser.js +6 -2
  18. package/dist/cjs/regenerate-tests.js +3 -3
  19. package/dist/cjs/render.js +5 -3
  20. package/dist/cjs/rules-check/no-connect-on-connected-pin.js +9 -8
  21. package/dist/cjs/rules-check/rules.js +7 -2
  22. package/dist/cjs/rules-check/unconnected-pins.js +10 -8
  23. package/dist/cjs/utils.js +2 -1
  24. package/dist/cjs/validate/SymbolTable.js +7 -1
  25. package/dist/cjs/validate/SymbolValidatorVisitor.js +54 -17
  26. package/dist/cjs/visitor.js +299 -238
  27. package/dist/esm/BaseVisitor.js +187 -24
  28. package/dist/esm/RefdesAnnotationVisitor.js +27 -10
  29. package/dist/esm/antlr/CircuitScriptLexer.js +241 -236
  30. package/dist/esm/antlr/CircuitScriptParser.js +1196 -899
  31. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -1
  32. package/dist/esm/builtinMethods.js +7 -3
  33. package/dist/esm/draw_symbols.js +38 -34
  34. package/dist/esm/environment.js +25 -1
  35. package/dist/esm/execute.js +197 -127
  36. package/dist/esm/globals.js +4 -0
  37. package/dist/esm/graph.js +14 -12
  38. package/dist/esm/helpers.js +91 -18
  39. package/dist/esm/layout.js +51 -26
  40. package/dist/esm/main.js +16 -14
  41. package/dist/esm/objects/ClassComponent.js +201 -30
  42. package/dist/esm/objects/ExecutionScope.js +9 -0
  43. package/dist/esm/objects/types.js +33 -1
  44. package/dist/esm/parser.js +6 -2
  45. package/dist/esm/regenerate-tests.js +3 -3
  46. package/dist/esm/render.js +5 -3
  47. package/dist/esm/rules-check/no-connect-on-connected-pin.js +9 -8
  48. package/dist/esm/rules-check/rules.js +7 -2
  49. package/dist/esm/rules-check/unconnected-pins.js +10 -8
  50. package/dist/esm/utils.js +2 -1
  51. package/dist/esm/validate/SymbolTable.js +5 -0
  52. package/dist/esm/validate/SymbolValidatorVisitor.js +53 -16
  53. package/dist/esm/visitor.js +201 -137
  54. package/dist/types/BaseVisitor.d.ts +27 -10
  55. package/dist/types/RefdesAnnotationVisitor.d.ts +2 -0
  56. package/dist/types/antlr/CircuitScriptLexer.d.ts +43 -42
  57. package/dist/types/antlr/CircuitScriptParser.d.ts +102 -58
  58. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -2
  59. package/dist/types/environment.d.ts +8 -1
  60. package/dist/types/execute.d.ts +6 -3
  61. package/dist/types/globals.d.ts +4 -0
  62. package/dist/types/graph.d.ts +2 -2
  63. package/dist/types/helpers.d.ts +2 -1
  64. package/dist/types/layout.d.ts +5 -4
  65. package/dist/types/objects/ClassComponent.d.ts +34 -9
  66. package/dist/types/objects/ExecutionScope.d.ts +3 -1
  67. package/dist/types/objects/types.d.ts +40 -3
  68. package/dist/types/validate/SymbolTable.d.ts +1 -0
  69. package/dist/types/validate/SymbolValidatorVisitor.d.ts +6 -6
  70. package/dist/types/visitor.d.ts +10 -2
  71. package/package.json +4 -1
@@ -1,5 +1,5 @@
1
1
  import { TerminalNode, Token } from "antlr4ng";
2
- import { Import_exprContext, Assignment_exprContext, Atom_exprContext, Function_call_exprContext, ValueAtomExprContext, UnaryOperatorExprContext, MultiplyExprContext, AdditionExprContext, BinaryOperatorExprContext, DataExprContext, Function_def_exprContext, For_exprContext } from "src/antlr/CircuitScriptParser";
2
+ import { Assignment_exprContext, Atom_exprContext, Function_call_exprContext, ValueAtomExprContext, UnaryOperatorExprContext, MultiplyExprContext, AdditionExprContext, BinaryOperatorExprContext, DataExprContext, Function_def_exprContext, For_exprContext, Import_simpleContext, Import_all_simpleContext, Import_specificContext } from "../antlr/CircuitScriptParser.js";
3
3
  import { ExecutionContext } from "../execute.js";
4
4
  import { ComplexType, FunctionDefinedParameter } from "../objects/types.js";
5
5
  import { SymbolTableItem } from "./SymbolTable.js";
@@ -7,16 +7,16 @@ import { SymbolTable } from "./SymbolTable.js";
7
7
  import { BaseVisitor } from "../BaseVisitor.js";
8
8
  export declare class SymbolValidatorVisitor extends BaseVisitor {
9
9
  symbolTable: SymbolTable;
10
- filePathStack: string[];
11
- enterFile(filePath: string): void;
12
- exitFile(): void;
13
- getCurrentFile(): string;
14
10
  protected addSymbolVariable(token: Token, name: string, value: ComplexType, executor?: ExecutionContext | null): void;
15
11
  protected addSymbolFunction(token: Token, functionName: string, funcDefinedParameters: FunctionDefinedParameter[]): void;
16
12
  protected handleAtomSymbol(atom: TerminalNode): SymbolTableItem;
17
13
  protected addSymbolInstance(symbol: SymbolTableItem, token: Token): void;
18
14
  setSymbols(symbolTable: SymbolTable): void;
19
- visitImport_expr: (ctx: Import_exprContext) => void;
15
+ private importCommon;
16
+ visitImport_simple: (ctx: Import_simpleContext) => Promise<void>;
17
+ visitImport_all_simple: (ctx: Import_all_simpleContext) => Promise<void>;
18
+ visitImport_specific: (ctx: Import_specificContext) => Promise<void>;
19
+ private applyModuleImports;
20
20
  visitAssignment_expr: (ctx: Assignment_exprContext) => ComplexType;
21
21
  visitAtom_expr: (ctx: Atom_exprContext) => void;
22
22
  visitFunction_call_expr: (ctx: Function_call_exprContext) => void;
@@ -4,10 +4,12 @@ import { PinTypes } from './objects/PinTypes.js';
4
4
  import { ComponentPin, ComponentPinNet, ComponentPinNetPair } from './objects/types.js';
5
5
  import { ExecutionWarning } from "./utils.js";
6
6
  import { Net } from './objects/Net.js';
7
- import { BaseVisitor } from './BaseVisitor.js';
7
+ import { BaseVisitor, OnErrorHandler } from './BaseVisitor.js';
8
8
  import { ParserRuleContext } from 'antlr4ng';
9
9
  import { Wire } from './objects/Wire.js';
10
+ import { NodeScriptEnvironment } from './environment.js';
10
11
  export declare class ParserVisitor extends BaseVisitor {
12
+ constructor(silent: boolean | undefined, onErrorHandler: OnErrorHandler | null | undefined, environment: NodeScriptEnvironment);
11
13
  componentCreationIndex: number;
12
14
  creationCtx: Map<ClassComponent | Wire, ParserRuleContext>;
13
15
  visitKeyword_assignment_expr: (ctx: Keyword_assignment_exprContext) => void;
@@ -20,6 +22,9 @@ export declare class ParserVisitor extends BaseVisitor {
20
22
  visitPath_block: (ctx: Path_blockContext) => void;
21
23
  visitGraph_expressions: (ctx: Graph_expressionsContext) => void;
22
24
  visitCreate_component_expr: (ctx: Create_component_exprContext) => void;
25
+ private extractComponentUnitDefinition;
26
+ private extractComponentUnitProperties;
27
+ private createComponentPropertyValidator;
23
28
  visitCreate_graphic_expr: (ctx: Create_graphic_exprContext) => void;
24
29
  visitGraphic_expressions_block: (ctx: Graphic_expressions_blockContext) => void;
25
30
  visitGraphicCommandExpr: (ctx: GraphicCommandExprContext) => void;
@@ -61,6 +66,7 @@ export declare class ParserVisitor extends BaseVisitor {
61
66
  visitIf_inner_expr: (ctx: If_inner_exprContext) => void;
62
67
  visitWhile_expr: (ctx: While_exprContext) => void;
63
68
  visitFor_expr: (ctx: For_exprContext) => void;
69
+ private setCurrentComponentRefdes;
64
70
  visitAnnotation_comment_expr: (ctx: Annotation_comment_exprContext) => void;
65
71
  visitPart_set_expr: (ctx: Part_set_exprContext) => void;
66
72
  visitPart_match_block: (ctx: Part_match_blockContext) => void;
@@ -69,10 +75,11 @@ export declare class ParserVisitor extends BaseVisitor {
69
75
  visitPart_value_expr: (ctx: Part_value_exprContext) => void;
70
76
  visitPart_condition_expr: (ctx: Part_condition_exprContext) => void;
71
77
  visitPart_condition_key_only_expr: (ctx: Part_condition_key_only_exprContext) => void;
78
+ checkModuleHasRefdesFile(filePath: string): Promise<void>;
72
79
  private resolveDataExpr;
73
80
  private resolveDataValue;
74
81
  pinTypes: PinTypes[];
75
- private parseCreateComponentPins;
82
+ private extractPinDefintion;
76
83
  private parseCreateModulePorts;
77
84
  private getArrangePropFromModulePorts;
78
85
  private getPortItems;
@@ -93,6 +100,7 @@ export declare class ParserVisitor extends BaseVisitor {
93
100
  nets: ComponentPinNetPair[];
94
101
  };
95
102
  annotateComponents(): void;
103
+ private setComponentUnitRefdesSuffix;
96
104
  private renameNetsWithRefdes;
97
105
  applySheetFrameComponent(): {
98
106
  frameComponent: ClassComponent | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circuitscript",
3
- "version": "0.1.29",
3
+ "version": "0.1.32",
4
4
  "description": "Interpreter for the circuitscript language",
5
5
  "homepage": "https://circuitscript.net",
6
6
  "engines": {
@@ -25,6 +25,7 @@
25
25
  ],
26
26
  "devDependencies": {
27
27
  "@types/big.js": "^6.2.2",
28
+ "@types/crypto-js": "^4.2.2",
28
29
  "@types/figlet": "^1.5.8",
29
30
  "@types/jest": "~29.5",
30
31
  "@types/node": "~18",
@@ -49,6 +50,7 @@
49
50
  "scripts": {
50
51
  "start": "node build/src/main.js",
51
52
  "clean": "rimraf coverage build tmp dist",
53
+ "compile": "npm run build",
52
54
  "build": "npm run copy-assets ; npm run build:cjs ; npm run build:esm",
53
55
  "build:cjs": "tsc -p tsconfig.cjs.json",
54
56
  "build:release:cjs": "tsc -p tsconfig.release.cjs.json",
@@ -86,6 +88,7 @@
86
88
  "antlr4ng": "^3.0.4",
87
89
  "big.js": "^6.2.2",
88
90
  "commander": "^11.1.0",
91
+ "crypto-js": "^4.2.0",
89
92
  "express": "^4.18.2",
90
93
  "figlet": "^1.7.0",
91
94
  "lodash": "^4.17.21",