circuitscript 0.1.10 → 0.1.12

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 (52) hide show
  1. package/dist/cjs/BaseVisitor.js +78 -51
  2. package/dist/cjs/SemanticTokenVisitor.js +6 -1
  3. package/dist/cjs/antlr/CircuitScriptParser.js +1062 -963
  4. package/dist/cjs/builtinMethods.js +5 -1
  5. package/dist/cjs/draw_symbols.js +2 -1
  6. package/dist/cjs/execute.js +43 -22
  7. package/dist/cjs/geometry.js +3 -9
  8. package/dist/cjs/globals.js +7 -1
  9. package/dist/cjs/layout.js +50 -16
  10. package/dist/cjs/objects/ExecutionScope.js +3 -0
  11. package/dist/cjs/objects/Net.js +1 -0
  12. package/dist/cjs/objects/ParamDefinition.js +3 -0
  13. package/dist/cjs/objects/types.js +19 -10
  14. package/dist/cjs/render.js +48 -6
  15. package/dist/cjs/utils.js +16 -1
  16. package/dist/cjs/validate/SymbolValidatorVisitor.js +5 -0
  17. package/dist/cjs/visitor.js +77 -57
  18. package/dist/esm/BaseVisitor.js +72 -45
  19. package/dist/esm/SemanticTokenVisitor.js +6 -1
  20. package/dist/esm/antlr/CircuitScriptParser.js +1055 -958
  21. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -2
  22. package/dist/esm/builtinMethods.js +6 -2
  23. package/dist/esm/draw_symbols.js +2 -1
  24. package/dist/esm/execute.js +43 -22
  25. package/dist/esm/geometry.js +3 -9
  26. package/dist/esm/globals.js +6 -0
  27. package/dist/esm/layout.js +53 -17
  28. package/dist/esm/objects/ExecutionScope.js +3 -0
  29. package/dist/esm/objects/Net.js +1 -0
  30. package/dist/esm/objects/ParamDefinition.js +4 -1
  31. package/dist/esm/objects/types.js +21 -15
  32. package/dist/esm/render.js +49 -7
  33. package/dist/esm/utils.js +13 -0
  34. package/dist/esm/validate/SymbolValidatorVisitor.js +5 -0
  35. package/dist/esm/visitor.js +66 -46
  36. package/dist/types/BaseVisitor.d.ts +2 -2
  37. package/dist/types/SemanticTokenVisitor.d.ts +2 -1
  38. package/dist/types/antlr/CircuitScriptParser.d.ts +100 -85
  39. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -4
  40. package/dist/types/execute.d.ts +1 -0
  41. package/dist/types/geometry.d.ts +0 -1
  42. package/dist/types/globals.d.ts +5 -0
  43. package/dist/types/layout.d.ts +16 -3
  44. package/dist/types/objects/ExecutionScope.d.ts +15 -3
  45. package/dist/types/objects/Net.d.ts +1 -0
  46. package/dist/types/objects/types.d.ts +25 -18
  47. package/dist/types/utils.d.ts +3 -1
  48. package/dist/types/validate/SymbolValidatorVisitor.d.ts +2 -1
  49. package/dist/types/visitor.d.ts +3 -2
  50. package/package.json +3 -2
  51. /package/dist/libs/{lib.cst → std.cst} +0 -0
  52. /package/libs/{lib.cst → std.cst} +0 -0
@@ -3,6 +3,7 @@ import { ExecutionContext } from '../execute.js';
3
3
  import { ClassComponent } from './ClassComponent.js';
4
4
  import { Net } from './Net.js';
5
5
  import { NumericValue, PercentageValue } from './ParamDefinition.js';
6
+ import { ReferenceTypes } from '../globals.js';
6
7
  export type CFunction = (args: CallableParameter[], options?: CFunctionOptions) => CFunctionResult;
7
8
  export type CFunctionOptions = {
8
9
  netNamespace?: string;
@@ -21,6 +22,11 @@ export type ComponentPinNetPair = [
21
22
  pin: number,
22
23
  net: Net
23
24
  ];
25
+ export type ComponentPinWireId = [
26
+ component: ClassComponent,
27
+ pin: number,
28
+ wireId: number
29
+ ];
24
30
  export type ComponentPin = [
25
31
  component: ClassComponent,
26
32
  pinId: number | string
@@ -41,32 +47,33 @@ export type FunctionDefinedParameter = [
41
47
  token: Token,
42
48
  defaultValue: ValueType
43
49
  ] | [name: string, token: Token];
50
+ export declare class AnyReference {
51
+ found: boolean;
52
+ name?: string;
53
+ trailers: string[];
54
+ type?: ReferenceTypes;
55
+ value?: any;
56
+ parentValue?: any;
57
+ constructor(refType: {
58
+ found: boolean;
59
+ name?: string;
60
+ trailers?: string[];
61
+ type?: ReferenceTypes;
62
+ value?: any;
63
+ parentValue?: any;
64
+ });
65
+ }
44
66
  export declare class UndeclaredReference {
45
- reference: ReferenceType;
46
- constructor(reference: ReferenceType);
67
+ reference: AnyReference;
68
+ constructor(reference: AnyReference);
47
69
  throwMessage(): string;
48
70
  toString(): string;
49
71
  nameString(): string;
50
72
  }
51
- export declare class DeclaredReference {
52
- found: boolean;
53
- name?: string;
54
- trailers?: string[];
55
- type?: 'value' | 'instance' | 'variable';
56
- value?: any;
57
- parentValue?: any;
58
- constructor(refType: ReferenceType);
73
+ export declare class DeclaredReference extends AnyReference {
59
74
  toString(): string;
60
75
  toDisplayString(): string;
61
76
  }
62
- export type ReferenceType = {
63
- found: boolean;
64
- name?: string;
65
- trailers?: string[];
66
- type?: 'value' | 'instance' | 'variable';
67
- value?: any;
68
- parentValue?: any;
69
- };
70
77
  export declare enum ParseSymbolType {
71
78
  Variable = "variable",
72
79
  Function = "function",
@@ -4,7 +4,7 @@ import { ClassComponent } from "./objects/ClassComponent.js";
4
4
  import { NumericValue } from "./objects/ParamDefinition.js";
5
5
  import { SequenceAction, SequenceItem } from './objects/ExecutionScope.js';
6
6
  import { BlockTypes } from './globals.js';
7
- import { ExecutionWarning } from './utils.js';
7
+ import { DeclaredReference, AnyReference } from './objects/types.js';
8
8
  export declare class SimpleStopwatch {
9
9
  startTime: Date;
10
10
  constructor();
@@ -73,3 +73,5 @@ export type ExecutionWarning = {
73
73
  ctx?: ParserRuleContext;
74
74
  };
75
75
  export declare function printWarnings(warnings: ExecutionWarning[]): void;
76
+ export declare function prepareValue(value: AnyReference | DeclaredReference | any): any;
77
+ export declare function isReference(value: any): boolean;
@@ -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 } from "src/antlr/CircuitScriptParser";
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";
3
3
  import { ExecutionContext } from "../execute.js";
4
4
  import { ComplexType, FunctionDefinedParameter } from "../objects/types.js";
5
5
  import { SymbolTableItem } from "./SymbolTable.js";
@@ -27,6 +27,7 @@ export declare class SymbolValidatorVisitor extends BaseVisitor {
27
27
  visitBinaryOperatorExpr: (ctx: BinaryOperatorExprContext) => void;
28
28
  visitDataExpr: (ctx: DataExprContext) => void;
29
29
  visitFunction_def_expr: (ctx: Function_def_exprContext) => void;
30
+ visitFor_expr: (ctx: For_exprContext) => void;
30
31
  getSymbols(): SymbolTable;
31
32
  dumpSymbols(): void;
32
33
  }
@@ -1,4 +1,4 @@
1
- import { Add_component_exprContext, AdditionExprContext, At_blockContext, At_block_pin_exprContext, At_block_pin_expression_complexContext, At_block_pin_expression_simpleContext, At_component_exprContext, BinaryOperatorExprContext, Path_blocksContext, Component_select_exprContext, Create_component_exprContext, Create_graphic_exprContext, DataExprContext, Data_expr_with_assignmentContext, Double_dot_property_set_exprContext, Frame_exprContext, Function_def_exprContext, Keyword_assignment_exprContext, MultiplyExprContext, Nested_propertiesContext, Net_namespace_exprContext, Pin_select_expr2Context, Pin_select_exprContext, Point_exprContext, Property_exprContext, Property_key_exprContext, Property_set_exprContext, Single_line_propertyContext, To_component_exprContext, Wire_exprContext, UnaryOperatorExprContext, Wire_expr_direction_onlyContext, Wire_expr_direction_valueContext, If_exprContext, If_inner_exprContext, LogicalOperatorExprContext, Nested_properties_innerContext, Expressions_blockContext, Create_module_exprContext, Property_block_exprContext, While_exprContext, For_exprContext, GraphicCommandExprContext, Graphic_expressions_blockContext, GraphicForExprContext } from './antlr/CircuitScriptParser.js';
1
+ import { Add_component_exprContext, AdditionExprContext, At_blockContext, At_block_pin_exprContext, At_block_pin_expression_complexContext, At_block_pin_expression_simpleContext, At_component_exprContext, BinaryOperatorExprContext, Component_select_exprContext, Create_component_exprContext, Create_graphic_exprContext, DataExprContext, Data_expr_with_assignmentContext, Double_dot_property_set_exprContext, Frame_exprContext, Function_def_exprContext, Keyword_assignment_exprContext, MultiplyExprContext, Nested_propertiesContext, Net_namespace_exprContext, Pin_select_expr2Context, Pin_select_exprContext, Point_exprContext, Property_exprContext, Property_key_exprContext, Property_set_exprContext, Single_line_propertyContext, To_component_exprContext, Wire_exprContext, UnaryOperatorExprContext, Wire_expr_direction_onlyContext, Wire_expr_direction_valueContext, If_exprContext, If_inner_exprContext, LogicalOperatorExprContext, Nested_properties_innerContext, Expressions_blockContext, Create_module_exprContext, Property_block_exprContext, While_exprContext, For_exprContext, GraphicCommandExprContext, Graphic_expressions_blockContext, GraphicForExprContext, Graph_expressionsContext, Path_blockContext } from './antlr/CircuitScriptParser.js';
2
2
  import { ClassComponent } from './objects/ClassComponent.js';
3
3
  import { PinTypes } from './objects/PinTypes.js';
4
4
  import { ComponentPin, ComponentPinNet, ComponentPinNetPair } from './objects/types.js';
@@ -13,7 +13,8 @@ export declare class ParserVisitor extends BaseVisitor {
13
13
  visitAt_component_expr: (ctx: At_component_exprContext) => ComponentPin;
14
14
  visitTo_component_expr: (ctx: To_component_exprContext) => ComponentPin;
15
15
  visitComponent_select_expr: (ctx: Component_select_exprContext) => void;
16
- visitPath_blocks: (ctx: Path_blocksContext) => ComponentPin;
16
+ visitPath_block: (ctx: Path_blockContext) => void;
17
+ visitGraph_expressions: (ctx: Graph_expressionsContext) => void;
17
18
  visitCreate_component_expr: (ctx: Create_component_exprContext) => void;
18
19
  visitCreate_graphic_expr: (ctx: Create_graphic_exprContext) => void;
19
20
  visitGraphic_expressions_block: (ctx: Graphic_expressions_blockContext) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circuitscript",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Interpreter for the circuitscript language",
5
5
  "homepage": "https://circuitscript.net",
6
6
  "engines": {
@@ -69,7 +69,8 @@
69
69
  "profile": "node --prof build/src/main.js examples/example_garden_pump.cst",
70
70
  "profile-flame": "node --prof-process --preprocess -j isolate*.log | flamebearer",
71
71
  "server": "node server.js",
72
- "pack-local": "npm run build; npm pack; rm circuitscript-install.tgz; mv `ls | grep circuitscript-` circuitscript-install.tgz; cp circuitscript-install.tgz ../circuitscript-vscode/client; cp circuitscript-install.tgz ../circuitscript-vscode/server && echo 'OK'",
72
+ "_old_pack-local": "npm run build; npm pack; rm circuitscript-install.tgz; mv `ls | grep circuitscript-` circuitscript-install.tgz; cp circuitscript-install.tgz ../circuitscript-vscode/client; cp circuitscript-install.tgz ../circuitscript-vscode/server && echo 'OK'",
73
+ "pack-language-server": "npm run build:release; npm pack; rm circuitscript-install.tgz; mv `ls | grep circuitscript-` circuitscript-install.tgz; cp circuitscript-install.tgz ../circuitscript-ide/language-server",
73
74
  "changelog": "auto-changelog --handlebars-setup ../changelog/helper.js -p",
74
75
  "preversion": "npm run test",
75
76
  "version": "npm run changelog && git add CHANGELOG.md",
File without changes
File without changes