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.
- package/dist/cjs/BaseVisitor.js +487 -0
- package/dist/cjs/SemanticTokenVisitor.js +218 -0
- package/dist/cjs/SymbolValidatorVisitor.js +233 -0
- package/dist/cjs/antlr/CircuitScriptLexer.js +209 -195
- package/dist/cjs/antlr/CircuitScriptParser.js +2310 -2087
- package/dist/cjs/antlr/CircuitScriptVisitor.js +4 -3
- package/dist/cjs/draw_symbols.js +67 -22
- package/dist/cjs/execute.js +51 -53
- package/dist/cjs/geometry.js +28 -8
- package/dist/cjs/helpers.js +175 -5
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/layout.js +8 -0
- package/dist/cjs/lexer.js +19 -22
- package/dist/cjs/main.js +6 -11
- package/dist/cjs/objects/ClassComponent.js +3 -0
- package/dist/cjs/objects/ExecutionScope.js +1 -0
- package/dist/cjs/objects/types.js +7 -1
- package/dist/cjs/parser.js +29 -258
- package/dist/cjs/validate.js +81 -0
- package/dist/cjs/visitor.js +529 -820
- package/dist/esm/BaseVisitor.mjs +488 -0
- package/dist/esm/SemanticTokenVisitor.mjs +215 -0
- package/dist/esm/SymbolValidatorVisitor.mjs +222 -0
- package/dist/esm/antlr/CircuitScriptLexer.mjs +184 -194
- package/dist/esm/antlr/CircuitScriptParser.mjs +2279 -2084
- package/dist/esm/antlr/CircuitScriptVisitor.mjs +8 -3
- package/dist/esm/draw_symbols.mjs +67 -22
- package/dist/esm/execute.mjs +50 -52
- package/dist/esm/geometry.mjs +28 -8
- package/dist/esm/helpers.mjs +165 -6
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/layout.mjs +8 -0
- package/dist/esm/lexer.mjs +10 -10
- package/dist/esm/main.mjs +7 -12
- package/dist/esm/objects/ClassComponent.mjs +3 -0
- package/dist/esm/objects/ExecutionScope.mjs +1 -0
- package/dist/esm/objects/types.mjs +6 -0
- package/dist/esm/parser.mjs +25 -230
- package/dist/esm/validate.mjs +74 -0
- package/dist/esm/visitor.mjs +343 -640
- package/dist/types/BaseVisitor.d.ts +69 -0
- package/dist/types/SemanticTokenVisitor.d.ts +36 -0
- package/dist/types/SymbolValidatorVisitor.d.ts +61 -0
- package/dist/types/antlr/CircuitScriptLexer.d.ts +8 -7
- package/dist/types/antlr/CircuitScriptParser.d.ts +513 -469
- package/dist/types/antlr/CircuitScriptVisitor.d.ts +69 -59
- package/dist/types/draw_symbols.d.ts +9 -0
- package/dist/types/execute.d.ts +5 -8
- package/dist/types/geometry.d.ts +4 -0
- package/dist/types/helpers.d.ts +32 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/lexer.d.ts +2 -2
- package/dist/types/objects/ExecutionScope.d.ts +4 -1
- package/dist/types/objects/types.d.ts +5 -0
- package/dist/types/parser.d.ts +15 -28
- package/dist/types/validate.d.ts +2 -0
- package/dist/types/visitor.d.ts +40 -95
- package/fonts/Inter-Bold.ttf +0 -0
- package/fonts/Inter-Regular.ttf +0 -0
- package/fonts/OpenSans-Regular.ttf +0 -0
- package/fonts/Roboto-Regular.ttf +0 -0
- package/libs/lib.cst +183 -0
- 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.
|
|
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/
|
|
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
|
-
"
|
|
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": "
|
|
82
|
+
"svgdom": "0.1.14",
|
|
78
83
|
"this-file": "^2.0.3",
|
|
79
84
|
"tslib": "~2.5",
|
|
80
85
|
"ws": "^8.14.2"
|