circuitscript 0.0.24 → 0.0.25

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 (63) hide show
  1. package/dist/cjs/BaseVisitor.js +487 -0
  2. package/dist/cjs/SemanticTokenVisitor.js +218 -0
  3. package/dist/cjs/SymbolValidatorVisitor.js +233 -0
  4. package/dist/cjs/antlr/CircuitScriptLexer.js +209 -195
  5. package/dist/cjs/antlr/CircuitScriptParser.js +2310 -2087
  6. package/dist/cjs/antlr/CircuitScriptVisitor.js +4 -3
  7. package/dist/cjs/draw_symbols.js +67 -22
  8. package/dist/cjs/execute.js +51 -53
  9. package/dist/cjs/geometry.js +28 -8
  10. package/dist/cjs/helpers.js +175 -5
  11. package/dist/cjs/index.js +2 -0
  12. package/dist/cjs/layout.js +8 -0
  13. package/dist/cjs/lexer.js +19 -22
  14. package/dist/cjs/main.js +6 -11
  15. package/dist/cjs/objects/ClassComponent.js +3 -0
  16. package/dist/cjs/objects/ExecutionScope.js +1 -0
  17. package/dist/cjs/objects/types.js +7 -1
  18. package/dist/cjs/parser.js +29 -258
  19. package/dist/cjs/validate.js +81 -0
  20. package/dist/cjs/visitor.js +529 -820
  21. package/dist/esm/BaseVisitor.mjs +488 -0
  22. package/dist/esm/SemanticTokenVisitor.mjs +215 -0
  23. package/dist/esm/SymbolValidatorVisitor.mjs +222 -0
  24. package/dist/esm/antlr/CircuitScriptLexer.mjs +184 -194
  25. package/dist/esm/antlr/CircuitScriptParser.mjs +2279 -2084
  26. package/dist/esm/antlr/CircuitScriptVisitor.mjs +8 -3
  27. package/dist/esm/draw_symbols.mjs +67 -22
  28. package/dist/esm/execute.mjs +50 -52
  29. package/dist/esm/geometry.mjs +28 -8
  30. package/dist/esm/helpers.mjs +165 -6
  31. package/dist/esm/index.mjs +2 -0
  32. package/dist/esm/layout.mjs +8 -0
  33. package/dist/esm/lexer.mjs +10 -10
  34. package/dist/esm/main.mjs +7 -12
  35. package/dist/esm/objects/ClassComponent.mjs +3 -0
  36. package/dist/esm/objects/ExecutionScope.mjs +1 -0
  37. package/dist/esm/objects/types.mjs +6 -0
  38. package/dist/esm/parser.mjs +25 -230
  39. package/dist/esm/validate.mjs +74 -0
  40. package/dist/esm/visitor.mjs +343 -640
  41. package/dist/types/BaseVisitor.d.ts +69 -0
  42. package/dist/types/SemanticTokenVisitor.d.ts +36 -0
  43. package/dist/types/SymbolValidatorVisitor.d.ts +61 -0
  44. package/dist/types/antlr/CircuitScriptLexer.d.ts +8 -7
  45. package/dist/types/antlr/CircuitScriptParser.d.ts +513 -469
  46. package/dist/types/antlr/CircuitScriptVisitor.d.ts +69 -59
  47. package/dist/types/draw_symbols.d.ts +9 -0
  48. package/dist/types/execute.d.ts +5 -8
  49. package/dist/types/geometry.d.ts +4 -0
  50. package/dist/types/helpers.d.ts +32 -1
  51. package/dist/types/index.d.ts +2 -0
  52. package/dist/types/lexer.d.ts +2 -2
  53. package/dist/types/objects/ExecutionScope.d.ts +4 -1
  54. package/dist/types/objects/types.d.ts +5 -0
  55. package/dist/types/parser.d.ts +15 -28
  56. package/dist/types/validate.d.ts +2 -0
  57. package/dist/types/visitor.d.ts +40 -95
  58. package/fonts/Inter-Bold.ttf +0 -0
  59. package/fonts/Inter-Regular.ttf +0 -0
  60. package/fonts/OpenSans-Regular.ttf +0 -0
  61. package/fonts/Roboto-Regular.ttf +0 -0
  62. package/libs/lib.cst +183 -0
  63. package/package.json +11 -6
package/libs/lib.cst ADDED
@@ -0,0 +1,183 @@
1
+ def net(net_name):
2
+ return create component:
3
+ pins: 1
4
+ display: create graphic:
5
+ hline: -15, 0, 30
6
+ vpin: 1, 0, 10, -10, display_pin_id=0
7
+ label: "net_name", 0, -5, net_name, fontSize=10, anchor="middle"
8
+ type: "net"
9
+ params:
10
+ __is_net: 1
11
+ net_name: net_name
12
+ priority: 10
13
+
14
+ def supply(net_name):
15
+ return create component:
16
+ pins: 1
17
+ display: create graphic:
18
+ hline: -15, 0, 30
19
+ vpin: 1, 0, 10, -10, display_pin_id=0
20
+ label: "net_name", 0, -5, net_name, fontSize=10, anchor="middle"
21
+ type: "net"
22
+ params:
23
+ __is_net: 1
24
+ net_name: net_name
25
+ priority: 20
26
+
27
+ def label(value):
28
+ return create component:
29
+ pins: 1
30
+ display: create graphic:
31
+ label: "value", 0, -2, "?", fontSize=10, anchor="left"
32
+ pin: 1, 0, 0, 0, 0, display_pin_id=0
33
+ type: "label"
34
+ params:
35
+ __is_net: 1
36
+ net_name: value
37
+ value: value
38
+ priority: 5
39
+
40
+ def res(value):
41
+ width = 40
42
+ height = 20
43
+
44
+ return create component:
45
+ pins: 2
46
+ display: create graphic:
47
+ rect: 0, 0, width, height
48
+ hpin: 1, -width/2 - 20, 0, 20
49
+ hpin: 2, width/2 + 20, 0, -20
50
+ label: ("value", 0, 1, value, fontSize=10, anchor="middle", vanchor="middle")
51
+ label: ("refdes", -width/2, -height/2 -5 , "?", fontSize=10, anchor="left")
52
+ type: "res"
53
+ params:
54
+ value: value
55
+ size: "0402"
56
+ footprint: "Resistor_SMD:R_0402_1005Metric"
57
+
58
+ def cap(value):
59
+ width = 20
60
+ height = 40
61
+
62
+ return create component:
63
+ pins: 2
64
+ display: create graphic:
65
+ hline: -width/2, -3, width
66
+ hline: -width/2, 3, width
67
+ vpin: 1, 0, -height/2, 20-3
68
+ vpin: 2, 0, height/2, -20+3
69
+ label: "refdes", width/2+2, 0, "?", fontSize = 10, anchor="left"
70
+ label: "value", width/2+2, 5, value, fontSize = 10, anchor = "left", vanchor="top"
71
+ type: "cap"
72
+ params:
73
+ value: value
74
+ size: "0402"
75
+ footprint: "Capacitor_SMD:C_0402_1005Metric"
76
+
77
+ def ind(value):
78
+ width = 40
79
+ height = 20
80
+
81
+ return create component:
82
+ pins: 2
83
+ type: "ind"
84
+ display: create graphic:
85
+ arc: -15, 0, 5, 180, 360
86
+ arc: -5, 0, 5, 180, 360
87
+ arc: 5, 0, 5, 180, 360
88
+ arc: 15, 0, 5, 180, 360
89
+ hpin: 1, -width/2 - 20, 0, 20
90
+ hpin: 2, width/2 + 20, 0, -20
91
+ label: ("value", 0, 10, value, fontSize=10, anchor="middle", vanchor="middle")
92
+ label: ("refdes", -width/2, -height/2 -5 , "?", fontSize=10, anchor="left")
93
+ params:
94
+ value: value
95
+
96
+ def diode():
97
+ width = 20
98
+ height = 20
99
+
100
+ # Diode is drawn horizontally
101
+ # -|>|-
102
+ return create component:
103
+ pins: 2
104
+ type: "diode"
105
+ display: create graphic:
106
+ triangle: -width/2, 0, width/2, 0, height
107
+ vline: width/2, -height/2, height
108
+ hpin: 1, -width/2-20, 0, 20 # anode
109
+ hpin: 2, width/2 + 20, 0, -20 # cathode
110
+ label: "refdes", width/2 + 5, 5, "?", fontSize=10, anchor="left", vanchor="top"
111
+
112
+ def led(color):
113
+ width = 20
114
+ height = 20
115
+
116
+ return create component:
117
+ pins:
118
+ 1: "cathode"
119
+ 2: "anode"
120
+ type: "diode"
121
+ display: create graphic:
122
+ triangle: -width/2, 0, width/2, 0, height
123
+ vline: width/2, -height/2, height
124
+ path: ("M", 0, 8, "L", 5, 18,
125
+ "M", 3, 8, "L", 8, 18)
126
+ hpin: 1, -width/2-20, 0, 20 # anode
127
+ hpin: 2, width/2 + 20, 0, -20 # cathode
128
+ label: "refdes", width/2 + 5, 5, "?", fontSize=10, anchor="left", vanchor="top"
129
+ label: "color", width/2 + 5, 25, color
130
+ params:
131
+ size: "0603"
132
+ footprint: "LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder"
133
+
134
+
135
+ def cgnd():
136
+ net_name = "gnd"
137
+ return create component:
138
+ pins: 1
139
+ display: create graphic:
140
+ hline: -15, 0, 30
141
+ hline: -10, 5, 20
142
+ hline: -5, 10, 10
143
+ vpin: 1, 0, -10, 10, display_pin_id=0
144
+ label: "net_name", 0, 22, net_name, fontSize=10, anchor="middle"
145
+ type: "net"
146
+ params:
147
+ __is_net: 1
148
+ net_name: net_name
149
+ priority: 100
150
+
151
+ def dgnd():
152
+ height = 10
153
+ width = 20
154
+
155
+ net_name = "GND"
156
+ return create component:
157
+ pins: 1
158
+ display: create graphic:
159
+ triangle: 0, 0, 0, height, width
160
+ vpin: 1, 0, -10, 10, display_pin_id=0
161
+ label: "net_name", 0, height + 10, net_name, fontSize=10, anchor="middle"
162
+ type: "net"
163
+ params:
164
+ __is_net: 1
165
+ net_name: net_name
166
+ priority: 100
167
+
168
+ def marker_point():
169
+ return create component:
170
+ pins: 1
171
+ display: create graphic:
172
+ hline: -5, 0, 10
173
+ vline: 0, -5, 10
174
+ pin: 1, 0, 0, 0, 0, display_pin_id=0
175
+ type: "net"
176
+
177
+ def arrow_point():
178
+ return create component:
179
+ pins: 1
180
+ display: create graphic:
181
+ path: ("M", 15, -5, "L", 20, 0, "L", 15, 5)
182
+ hpin: 1, 0, 0, 20
183
+ type: "net"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "circuitscript",
3
- "version": "0.0.24",
3
+ "version": "0.0.25",
4
4
  "description": "Interpreter for the circuitscript language",
5
5
  "homepage": "https://circuitscript.net",
6
6
  "engines": {
@@ -10,7 +10,7 @@
10
10
  "module": "./dist/esm/index.mjs",
11
11
  "types": "./dist/types/index.d.ts",
12
12
  "bin": {
13
- "circuitscript": "./dist/esm/main.mjs"
13
+ "circuitscript": "./dist/cjs/main.js"
14
14
  },
15
15
  "exports": {
16
16
  ".": {
@@ -19,7 +19,9 @@
19
19
  }
20
20
  },
21
21
  "files": [
22
- "dist"
22
+ "dist",
23
+ "fonts",
24
+ "libs"
23
25
  ],
24
26
  "devDependencies": {
25
27
  "@types/figlet": "^1.5.8",
@@ -28,6 +30,7 @@
28
30
  "@types/svgdom": "^0.1.2",
29
31
  "@typescript-eslint/eslint-plugin": "~5.59",
30
32
  "@typescript-eslint/parser": "~5.59",
33
+ "antlr4ng-cli": "^2.0.0",
31
34
  "eslint": "~8.38",
32
35
  "eslint-config-prettier": "~8.8",
33
36
  "eslint-plugin-jest": "~27.2",
@@ -59,9 +62,11 @@
59
62
  "prettier": "prettier --config .prettierrc --write .",
60
63
  "test:watch": "jest --watch",
61
64
  "antlr": "antlr4 -Dlanguage=TypeScript ./src/antlr/CircuitScript.g4 -no-listener -visitor",
65
+ "antlr4ng": "npx antlr4ng -Dlanguage=TypeScript -o src/antlr -visitor -no-listener -Xexact-output-dir src/antlr/CircuitScript.g4",
62
66
  "profile": "node --prof build/src/main.js examples/example_garden_pump.cst",
63
67
  "profile-flame": "node --prof-process --preprocess -j isolate*.log | flamebearer",
64
- "server": "node server.js"
68
+ "server": "node server.js",
69
+ "pack-local": "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"
65
70
  },
66
71
  "boilerplate_author": "Jakub Synowiec <jsynowiec@users.noreply.github.com>",
67
72
  "license": "MIT",
@@ -69,12 +74,12 @@
69
74
  "@dagrejs/graphlib": "2.1.13",
70
75
  "@flatten-js/core": "1.5.5",
71
76
  "@svgdotjs/svg.js": "3.2.0",
72
- "antlr4": "^4.13.0",
77
+ "antlr4ng": "^3.0.4",
73
78
  "commander": "^11.1.0",
74
79
  "express": "^4.18.2",
75
80
  "figlet": "^1.7.0",
76
81
  "lodash": "^4.17.21",
77
- "svgdom": "^0.1.14",
82
+ "svgdom": "0.1.14",
78
83
  "this-file": "^2.0.3",
79
84
  "tslib": "~2.5",
80
85
  "ws": "^8.14.2"