circuitscript 0.3.1 → 0.4.0
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 +394 -262
- package/dist/cjs/LexerDiagnosticListener.js +375 -0
- package/dist/cjs/{ComponentAnnotater.js → annotate/ComponentAnnotater.js} +29 -15
- package/dist/cjs/annotate/DefaultPostAnnotationCallback.js +126 -0
- package/dist/cjs/{RefdesAnnotationVisitor.js → annotate/RefdesAnnotationVisitor.js} +10 -84
- package/dist/cjs/annotate/utils.js +70 -0
- package/dist/cjs/antlr/CircuitScriptLexer.js +279 -286
- package/dist/cjs/antlr/CircuitScriptParser.js +1954 -3535
- package/dist/cjs/antlr/CircuitScriptParserVisitor.js +7 -0
- package/dist/cjs/cache/deserializer.js +34 -0
- package/dist/cjs/cache/hash.js +8 -0
- package/dist/cjs/cache/serializer.js +122 -0
- package/dist/cjs/cache/storage.js +45 -0
- package/dist/cjs/cache/types.js +4 -0
- package/dist/cjs/{environment.js → environment/environment.js} +18 -6
- package/dist/cjs/environment/esm-environment.js +21 -0
- package/dist/cjs/environment/helpers.js +8 -0
- package/dist/cjs/execute.js +49 -15
- package/dist/cjs/globals.js +9 -1
- package/dist/cjs/helpers.js +3 -467
- package/dist/cjs/importResolver.js +102 -0
- package/dist/cjs/index.js +7 -6
- package/dist/cjs/lexer.js +48 -12
- package/dist/cjs/main.js +14 -4
- package/dist/cjs/objects/ClassComponent.js +1 -1
- package/dist/cjs/objects/ExecutionScope.js +0 -1
- package/dist/cjs/objects/types.js +17 -1
- package/dist/cjs/parser.js +18 -4
- package/dist/cjs/pipeline.js +284 -0
- package/dist/cjs/regenerate-tests.js +4 -3
- package/dist/cjs/render/KiCadNetListOutputHandler.js +30 -0
- package/dist/cjs/render/PaperSizes.js +46 -0
- package/dist/cjs/{draw_symbols.js → render/draw_symbols.js} +58 -36
- package/dist/cjs/{export.js → render/export.js} +2 -2
- package/dist/cjs/{geometry.js → render/geometry.js} +5 -5
- package/dist/cjs/{graph.js → render/graph.js} +7 -7
- package/dist/cjs/{layout.js → render/layout.js} +8 -8
- package/dist/cjs/{render.js → render/render.js} +9 -8
- package/dist/cjs/rules-check/no-connect-on-connected-pin.js +1 -1
- package/dist/cjs/rules-check/unconnected-pins.js +1 -1
- package/dist/cjs/{SemanticTokenVisitor.js → semantic-tokens/SemanticTokenVisitor.js} +12 -14
- package/dist/cjs/semantic-tokens/getSemanticTokens.js +55 -0
- package/dist/cjs/sizing.js +2 -2
- package/dist/cjs/utils.js +2 -2
- package/dist/cjs/validate/SymbolValidatorResolveVisitor.js +6 -0
- package/dist/cjs/validate/SymbolValidatorVisitor.js +34 -39
- package/dist/cjs/validate/validateScript.js +54 -0
- package/dist/cjs/validate.js +5 -4
- package/dist/cjs/visitor.js +158 -212
- package/dist/esm/BaseVisitor.js +396 -264
- package/dist/esm/LexerDiagnosticListener.js +371 -0
- package/dist/esm/{ComponentAnnotater.js → annotate/ComponentAnnotater.js} +29 -15
- package/dist/esm/annotate/DefaultPostAnnotationCallback.js +122 -0
- package/dist/esm/{RefdesAnnotationVisitor.js → annotate/RefdesAnnotationVisitor.js} +10 -84
- package/dist/esm/annotate/utils.js +66 -0
- package/dist/esm/antlr/CircuitScriptLexer.js +279 -286
- package/dist/esm/antlr/CircuitScriptParser.js +1962 -3522
- package/dist/esm/antlr/{CircuitScriptVisitor.js → CircuitScriptParserVisitor.js} +14 -35
- package/dist/esm/cache/deserializer.js +30 -0
- package/dist/esm/cache/hash.js +4 -0
- package/dist/esm/cache/serializer.js +118 -0
- package/dist/esm/cache/storage.js +39 -0
- package/dist/esm/cache/types.js +1 -0
- package/dist/esm/{environment.js → environment/environment.js} +18 -6
- package/dist/esm/environment/esm-environment.js +17 -0
- package/dist/esm/environment/helpers.js +4 -0
- package/dist/esm/execute.js +49 -15
- package/dist/esm/globals.js +8 -0
- package/dist/esm/helpers.js +5 -456
- package/dist/esm/importResolver.js +96 -0
- package/dist/esm/index.js +7 -6
- package/dist/esm/lexer.js +51 -12
- package/dist/esm/main.js +13 -3
- package/dist/esm/objects/ClassComponent.js +1 -1
- package/dist/esm/objects/ExecutionScope.js +0 -1
- package/dist/esm/objects/types.js +21 -1
- package/dist/esm/parser.js +19 -5
- package/dist/esm/pipeline.js +276 -0
- package/dist/esm/regenerate-tests.js +3 -2
- package/dist/esm/render/KiCadNetListOutputHandler.js +20 -0
- package/dist/esm/render/PaperSizes.js +41 -0
- package/dist/esm/{draw_symbols.js → render/draw_symbols.js} +58 -36
- package/dist/esm/{export.js → render/export.js} +2 -2
- package/dist/esm/{geometry.js → render/geometry.js} +5 -5
- package/dist/esm/{graph.js → render/graph.js} +7 -7
- package/dist/esm/{layout.js → render/layout.js} +8 -8
- package/dist/esm/{render.js → render/render.js} +8 -7
- package/dist/esm/rules-check/no-connect-on-connected-pin.js +1 -1
- package/dist/esm/rules-check/unconnected-pins.js +1 -1
- package/dist/esm/{SemanticTokenVisitor.js → semantic-tokens/SemanticTokenVisitor.js} +12 -14
- package/dist/esm/semantic-tokens/getSemanticTokens.js +51 -0
- package/dist/esm/sizing.js +2 -2
- package/dist/esm/utils.js +2 -2
- package/dist/esm/validate/SymbolValidatorResolveVisitor.js +3 -0
- package/dist/esm/validate/SymbolValidatorVisitor.js +36 -41
- package/dist/esm/validate/validateScript.js +50 -0
- package/dist/esm/validate.js +4 -3
- package/dist/esm/visitor.js +160 -214
- package/dist/libs/std.cst +15 -19
- package/dist/types/BaseVisitor.d.ts +25 -18
- package/dist/types/BomGeneration.d.ts +1 -1
- package/dist/types/LexerDiagnosticListener.d.ts +85 -0
- package/dist/types/{ComponentAnnotater.d.ts → annotate/ComponentAnnotater.d.ts} +1 -1
- package/dist/types/annotate/DefaultPostAnnotationCallback.d.ts +7 -0
- package/dist/types/{RefdesAnnotationVisitor.d.ts → annotate/RefdesAnnotationVisitor.d.ts} +7 -9
- package/dist/types/annotate/utils.d.ts +6 -0
- package/dist/types/antlr/CircuitScriptLexer.d.ts +71 -70
- package/dist/types/antlr/CircuitScriptParser.d.ts +357 -515
- package/dist/types/antlr/{CircuitScriptVisitor.d.ts → CircuitScriptParserVisitor.d.ts} +27 -69
- package/dist/types/cache/deserializer.d.ts +5 -0
- package/dist/types/cache/hash.d.ts +1 -0
- package/dist/types/cache/serializer.d.ts +3 -0
- package/dist/types/cache/storage.d.ts +4 -0
- package/dist/types/cache/types.d.ts +20 -0
- package/dist/types/{environment.d.ts → environment/environment.d.ts} +5 -4
- package/dist/types/environment/esm-environment.d.ts +4 -0
- package/dist/types/environment/helpers.d.ts +2 -0
- package/dist/types/execute.d.ts +3 -2
- package/dist/types/globals.d.ts +1 -0
- package/dist/types/helpers.d.ts +31 -36
- package/dist/types/importResolver.d.ts +4 -0
- package/dist/types/index.d.ts +7 -6
- package/dist/types/lexer.d.ts +9 -5
- package/dist/types/objects/ClassComponent.d.ts +1 -1
- package/dist/types/objects/ExecutionScope.d.ts +1 -4
- package/dist/types/objects/types.d.ts +16 -2
- package/dist/types/parser.d.ts +9 -2
- package/dist/types/pipeline.d.ts +9 -0
- package/dist/types/render/KiCadNetListOutputHandler.d.ts +10 -0
- package/dist/types/render/PaperSizes.d.ts +12 -0
- package/dist/types/{draw_symbols.d.ts → render/draw_symbols.d.ts} +4 -4
- package/dist/types/{export.d.ts → render/export.d.ts} +1 -1
- package/dist/types/{geometry.d.ts → render/geometry.d.ts} +2 -2
- package/dist/types/{graph.d.ts → render/graph.d.ts} +6 -6
- package/dist/types/{layout.d.ts → render/layout.d.ts} +10 -10
- package/dist/types/{render.d.ts → render/render.d.ts} +1 -1
- package/dist/types/{SemanticTokenVisitor.d.ts → semantic-tokens/SemanticTokenVisitor.d.ts} +6 -6
- package/dist/types/semantic-tokens/getSemanticTokens.d.ts +6 -0
- package/dist/types/sizing.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/validate/SymbolValidatorResolveVisitor.d.ts +3 -0
- package/dist/types/validate/SymbolValidatorVisitor.d.ts +8 -8
- package/dist/types/validate/validateScript.d.ts +3 -0
- package/dist/types/visitor.d.ts +8 -14
- package/libs/std.cst +15 -19
- package/package.json +3 -6
- package/dist/cjs/antlr/CircuitScriptVisitor.js +0 -7
package/dist/cjs/helpers.js
CHANGED
|
@@ -3,29 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const pdfkit_1 = __importDefault(require("pdfkit"));
|
|
9
|
-
const export_js_1 = require("./export.js");
|
|
10
|
-
const layout_js_1 = require("./layout.js");
|
|
11
|
-
const parser_js_1 = require("./parser.js");
|
|
12
|
-
const render_js_1 = require("./render.js");
|
|
6
|
+
exports.milsToMM = exports.UnitDimension = exports.detectJSModuleType = exports.RefdesOutputType = exports.ParseErrorStrategy = exports.TokenErrorListener = exports.prepareFile = exports.JSModuleType = void 0;
|
|
13
7
|
const utils_js_1 = require("./utils.js");
|
|
14
|
-
const visitor_js_1 = require("./visitor.js");
|
|
15
|
-
const SymbolValidatorVisitor_js_1 = require("./validate/SymbolValidatorVisitor.js");
|
|
16
|
-
const SymbolValidatorResolveVisitor_js_1 = require("./validate/SymbolValidatorResolveVisitor.js");
|
|
17
8
|
const antlr4ng_1 = require("antlr4ng");
|
|
18
9
|
const lexer_js_1 = require("./lexer.js");
|
|
19
10
|
const CircuitScriptParser_js_1 = require("./antlr/CircuitScriptParser.js");
|
|
20
|
-
const SemanticTokenVisitor_js_1 = require("./SemanticTokenVisitor.js");
|
|
21
11
|
const globals_js_1 = require("./globals.js");
|
|
22
|
-
const Frame_js_1 = require("./objects/Frame.js");
|
|
23
12
|
const big_js_1 = __importDefault(require("big.js"));
|
|
24
|
-
const logger_js_1 = require("./logger.js");
|
|
25
|
-
const graph_js_1 = require("./graph.js");
|
|
26
|
-
const RefdesAnnotationVisitor_js_1 = require("./RefdesAnnotationVisitor.js");
|
|
27
|
-
const rules_js_1 = require("./rules-check/rules.js");
|
|
28
|
-
const BomGeneration_js_1 = require("./BomGeneration.js");
|
|
29
13
|
var JSModuleType;
|
|
30
14
|
(function (JSModuleType) {
|
|
31
15
|
JSModuleType["CommonJs"] = "cjs";
|
|
@@ -47,59 +31,12 @@ function prepareFile(textData) {
|
|
|
47
31
|
};
|
|
48
32
|
}
|
|
49
33
|
exports.prepareFile = prepareFile;
|
|
50
|
-
async function getSemanticTokens(scriptData, options) {
|
|
51
|
-
const { parser, lexer, tokens } = prepareFile(scriptData);
|
|
52
|
-
const tree = parser.script();
|
|
53
|
-
const visitor = new SemanticTokenVisitor_js_1.SemanticTokensVisitor(true, null, options.environment, lexer, scriptData);
|
|
54
|
-
parser.removeErrorListeners();
|
|
55
|
-
visitor.onImportFile = async (visitor, filePath, textData) => {
|
|
56
|
-
let hasError = false;
|
|
57
|
-
let hasParseError = false;
|
|
58
|
-
if (textData !== null) {
|
|
59
|
-
const { parser } = prepareFile(textData);
|
|
60
|
-
const tree = parser.script();
|
|
61
|
-
try {
|
|
62
|
-
visitor.visit(tree);
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
console.log('Error while parsing: ', err);
|
|
66
|
-
hasParseError = true;
|
|
67
|
-
hasError = true;
|
|
68
|
-
throw new utils_js_1.ParseError(`Error parsing semantic tokens in imported file: ${err}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
console.log('File does not exist');
|
|
73
|
-
hasError = true;
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
hasError, hasParseError
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
await visitor.visitAsync(tree);
|
|
80
|
-
const semanticTokens = visitor.getTokens();
|
|
81
|
-
const parsedTokens = (0, SemanticTokenVisitor_js_1.prepareTokens)(tokens.getTokens(), lexer, scriptData);
|
|
82
|
-
const finalParsedTokens = [];
|
|
83
|
-
parsedTokens.forEach(token => {
|
|
84
|
-
const location = `${token.line}_${token.column}_${token.length}`;
|
|
85
|
-
if (semanticTokens.has(location)) {
|
|
86
|
-
finalParsedTokens.push(semanticTokens.get(location));
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
finalParsedTokens.push(token);
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
return {
|
|
93
|
-
visitor,
|
|
94
|
-
parsedTokens: finalParsedTokens
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
exports.getSemanticTokens = getSemanticTokens;
|
|
98
34
|
class TokenErrorListener extends antlr4ng_1.BaseErrorListener {
|
|
99
35
|
syntaxError(recognizer, offendingSymbol, line, column, msg, e) {
|
|
100
36
|
console.log(msg);
|
|
101
37
|
}
|
|
102
38
|
}
|
|
39
|
+
exports.TokenErrorListener = TokenErrorListener;
|
|
103
40
|
class ParseErrorStrategy extends antlr4ng_1.DefaultErrorStrategy {
|
|
104
41
|
reportUnwantedToken(recognizer) {
|
|
105
42
|
if (this.inErrorRecoveryMode(recognizer)) {
|
|
@@ -114,367 +51,12 @@ class ParseErrorStrategy extends antlr4ng_1.DefaultErrorStrategy {
|
|
|
114
51
|
}
|
|
115
52
|
}
|
|
116
53
|
exports.ParseErrorStrategy = ParseErrorStrategy;
|
|
117
|
-
async function validateScript(filePath, scriptData, options) {
|
|
118
|
-
const { parser } = prepareFile(scriptData);
|
|
119
|
-
parser.removeErrorListeners();
|
|
120
|
-
parser.errorHandler = new ParseErrorStrategy();
|
|
121
|
-
parser.addErrorListener(new TokenErrorListener());
|
|
122
|
-
const tree = parser.script();
|
|
123
|
-
const visitor = new SymbolValidatorVisitor_js_1.SymbolValidatorVisitor(true, null, options.environment);
|
|
124
|
-
visitor.enterFile(filePath);
|
|
125
|
-
visitor.onImportFile = async (visitor, filePath, textData) => {
|
|
126
|
-
visitor.enterFile(filePath);
|
|
127
|
-
let hasError = false;
|
|
128
|
-
let hasParseError = false;
|
|
129
|
-
if (textData !== null) {
|
|
130
|
-
const { parser } = prepareFile(textData);
|
|
131
|
-
const tree = parser.script();
|
|
132
|
-
try {
|
|
133
|
-
await visitor.visitAsync(tree);
|
|
134
|
-
visitor.exitFile();
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
console.log('got an error while parsing tree: ', err);
|
|
138
|
-
hasParseError = true;
|
|
139
|
-
hasError = true;
|
|
140
|
-
throw new utils_js_1.ParseError(`Error parsing validation in imported file: ${err}`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
console.log('file does not exist!');
|
|
145
|
-
hasError = true;
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
hasError, hasParseError
|
|
149
|
-
};
|
|
150
|
-
};
|
|
151
|
-
await visitor.visitAsync(tree);
|
|
152
|
-
const symbolTable = visitor.getSymbols();
|
|
153
|
-
symbolTable.clearUndefined();
|
|
154
|
-
const visitorResolver = new SymbolValidatorResolveVisitor_js_1.SymbolValidatorResolveVisitor(true, null, options.environment);
|
|
155
|
-
visitorResolver.enterFile(filePath);
|
|
156
|
-
visitorResolver.setSymbols(visitor.getSymbols());
|
|
157
|
-
visitorResolver.onImportFile = visitor.onImportFile;
|
|
158
|
-
await visitorResolver.visitAsync(tree);
|
|
159
|
-
return visitorResolver;
|
|
160
|
-
}
|
|
161
|
-
exports.validateScript = validateScript;
|
|
162
|
-
async function DefaultPostAnnotationCallback(options, scriptData, tree, tokens, componentLinks, importedLibraries, environment) {
|
|
163
|
-
const { inputPath = null, updateSource = false, saveAnnotatedCopy = undefined, } = options;
|
|
164
|
-
if (inputPath && (updateSource || saveAnnotatedCopy !== undefined)) {
|
|
165
|
-
const annotatedFiles = [{
|
|
166
|
-
isMainFile: true,
|
|
167
|
-
scriptData,
|
|
168
|
-
tokens,
|
|
169
|
-
tree,
|
|
170
|
-
filePath: inputPath,
|
|
171
|
-
outputType: RefdesOutputType.WithSource
|
|
172
|
-
}];
|
|
173
|
-
for (const library of importedLibraries) {
|
|
174
|
-
let outputType = RefdesOutputType.None;
|
|
175
|
-
if (library.enableRefdesAnnotation) {
|
|
176
|
-
outputType = RefdesOutputType.WithSource;
|
|
177
|
-
}
|
|
178
|
-
else if (library.enableRefdesAnnotationFile) {
|
|
179
|
-
outputType = RefdesOutputType.CreateExternalFile;
|
|
180
|
-
}
|
|
181
|
-
if (outputType !== RefdesOutputType.None) {
|
|
182
|
-
const { libraryFilePath, libraryName, tokens: libTokens, tree: libTree } = library;
|
|
183
|
-
const libraryScriptData = await environment.readFile(libraryFilePath, { encoding: 'utf8' });
|
|
184
|
-
annotatedFiles.push({
|
|
185
|
-
tokens: libTokens,
|
|
186
|
-
tree: libTree,
|
|
187
|
-
filePath: libraryFilePath,
|
|
188
|
-
scriptData: libraryScriptData,
|
|
189
|
-
libraryName,
|
|
190
|
-
outputType
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
for (const item of annotatedFiles) {
|
|
195
|
-
const { scriptData, tokens, tree, filePath, libraryName, isMainFile = false } = item;
|
|
196
|
-
const tmpVisitor = new RefdesAnnotationVisitor_js_1.RefdesAnnotationVisitor(true, scriptData, tokens, componentLinks);
|
|
197
|
-
await tmpVisitor.visit(tree);
|
|
198
|
-
let usePath = filePath;
|
|
199
|
-
if (isMainFile && saveAnnotatedCopy === true) {
|
|
200
|
-
const dir = environment.dirname(filePath);
|
|
201
|
-
const ext = environment.extname(filePath);
|
|
202
|
-
const basename = environment.basename(filePath, ext);
|
|
203
|
-
usePath = environment.join(dir, `${basename}.annotated${ext}`);
|
|
204
|
-
}
|
|
205
|
-
else if (isMainFile && typeof saveAnnotatedCopy === 'string') {
|
|
206
|
-
usePath = saveAnnotatedCopy;
|
|
207
|
-
}
|
|
208
|
-
if (item.outputType === RefdesOutputType.WithSource) {
|
|
209
|
-
environment.writeFileSync(usePath, tmpVisitor.getOutput());
|
|
210
|
-
}
|
|
211
|
-
else if (item.outputType === RefdesOutputType.CreateExternalFile) {
|
|
212
|
-
const dir = environment.dirname(usePath);
|
|
213
|
-
const ext = environment.extname(usePath);
|
|
214
|
-
const basename = environment.basename(filePath, ext);
|
|
215
|
-
usePath = environment.join(dir, `${basename}${globals_js_1.RefdesFileSuffix}`);
|
|
216
|
-
const output = tmpVisitor.getOutputForExternalRefdesFile();
|
|
217
|
-
const inputDir = environment.dirname(inputPath);
|
|
218
|
-
const relativeFilePath = environment.relative(inputDir, filePath);
|
|
219
|
-
const jsonFile = {
|
|
220
|
-
format: 'v1',
|
|
221
|
-
library: libraryName,
|
|
222
|
-
file: relativeFilePath,
|
|
223
|
-
items: output,
|
|
224
|
-
};
|
|
225
|
-
environment.writeFileSync(usePath, JSON.stringify(jsonFile, null, 4));
|
|
226
|
-
}
|
|
227
|
-
let display = 'Refdes annotations';
|
|
228
|
-
if (libraryName) {
|
|
229
|
-
display += ` for library ${libraryName}`;
|
|
230
|
-
}
|
|
231
|
-
console.log(`${display} saved to ${usePath}`);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
54
|
var RefdesOutputType;
|
|
236
55
|
(function (RefdesOutputType) {
|
|
237
56
|
RefdesOutputType["None"] = "none";
|
|
238
57
|
RefdesOutputType["WithSource"] = "with-source";
|
|
239
58
|
RefdesOutputType["CreateExternalFile"] = "create-external-file";
|
|
240
|
-
})(RefdesOutputType || (RefdesOutputType = {}));
|
|
241
|
-
async function renderScript(scriptData, outputPath, options) {
|
|
242
|
-
const parseHandlers = [
|
|
243
|
-
new KiCadNetListOutputHandler(),
|
|
244
|
-
];
|
|
245
|
-
return renderScriptCustom(scriptData, outputPath, options, parseHandlers, [DefaultPostAnnotationCallback]);
|
|
246
|
-
}
|
|
247
|
-
exports.renderScript = renderScript;
|
|
248
|
-
async function renderScriptCustom(scriptData, outputPath, options, parseHandlers, postAnnotationCallbacks) {
|
|
249
|
-
const { dumpNets = false, dumpData = false, showStats = false, enableErc = false, enableBom = false, inputPath = '', bomOutputPath = undefined, environment } = options;
|
|
250
|
-
const errors = [];
|
|
251
|
-
const onErrorHandler = (message, context, error) => {
|
|
252
|
-
if (error && error instanceof utils_js_1.RuntimeExecutionError) {
|
|
253
|
-
errors.push(error);
|
|
254
|
-
}
|
|
255
|
-
else if (error && error instanceof antlr4ng_1.RecognitionException) {
|
|
256
|
-
if (context !== null) {
|
|
257
|
-
errors.push(new utils_js_1.ParseSyntaxError(message, context.start, context.stop));
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
if (error.recognizer) {
|
|
261
|
-
const recognizer = error.recognizer;
|
|
262
|
-
errors.push(new utils_js_1.ParseSyntaxError(message, {
|
|
263
|
-
line: recognizer.currentTokenStartLine,
|
|
264
|
-
column: recognizer.currentTokenColumn
|
|
265
|
-
}));
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
errors.push(new utils_js_1.ParseSyntaxError(message));
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
errors.push(new utils_js_1.ParseError(message, context.start, context.stop));
|
|
274
|
-
}
|
|
275
|
-
};
|
|
276
|
-
environment.setCurrentFile(inputPath);
|
|
277
|
-
const visitor = new visitor_js_1.ParserVisitor(true, onErrorHandler, environment);
|
|
278
|
-
visitor.onImportFile = async (visitor, filePath, fileData) => {
|
|
279
|
-
visitor.enterFile(filePath);
|
|
280
|
-
const { hasError, hasParseError, throwError, tree, tokens } = await (0, parser_js_1.parseFileWithVisitor)(visitor, fileData);
|
|
281
|
-
visitor.exitFile();
|
|
282
|
-
if (hasError || hasParseError) {
|
|
283
|
-
let importErrorMsg = "";
|
|
284
|
-
if (throwError) {
|
|
285
|
-
importErrorMsg = ": " + throwError.message;
|
|
286
|
-
}
|
|
287
|
-
throw new utils_js_1.ParseError(`Error parsing imported file: ${filePath}${importErrorMsg}`, undefined, undefined, filePath);
|
|
288
|
-
}
|
|
289
|
-
return { hasError, hasParseError, tree, tokens };
|
|
290
|
-
};
|
|
291
|
-
visitor.log('reading file');
|
|
292
|
-
visitor.log('done reading file');
|
|
293
|
-
const dumpDirectory = environment.getRelativeToModule('/dump/');
|
|
294
|
-
if (dumpData) {
|
|
295
|
-
console.log('Dump data to:', dumpDirectory);
|
|
296
|
-
if (!environment.existsSync(dumpDirectory)) {
|
|
297
|
-
environment.mkdirSync(dumpDirectory);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
if (inputPath !== '') {
|
|
301
|
-
visitor.enterFile(inputPath);
|
|
302
|
-
}
|
|
303
|
-
const { tree, parser, tokens, parserTimeTaken, lexerTimeTaken, throwError } = await (0, parser_js_1.parseFileWithVisitor)(visitor, scriptData);
|
|
304
|
-
(0, utils_js_1.printWarnings)(visitor.getWarnings());
|
|
305
|
-
showStats && console.log('Lexing took:', lexerTimeTaken);
|
|
306
|
-
showStats && console.log('Parsing took:', parserTimeTaken);
|
|
307
|
-
try {
|
|
308
|
-
visitor.annotateComponents();
|
|
309
|
-
}
|
|
310
|
-
catch (err) {
|
|
311
|
-
throw new utils_js_1.RenderError(`Error during component annotation: ${err}`, 'annotation');
|
|
312
|
-
}
|
|
313
|
-
const componentLinks = visitor.getComponentCtxLinks();
|
|
314
|
-
const importedLibraries = Array.from(visitor.getScope().libraries.values());
|
|
315
|
-
for (let i = 0; i < postAnnotationCallbacks.length; i++) {
|
|
316
|
-
await postAnnotationCallbacks[i](options, scriptData, tree, tokens, componentLinks, importedLibraries, environment);
|
|
317
|
-
}
|
|
318
|
-
if (dumpNets) {
|
|
319
|
-
const nets = visitor.dumpNets();
|
|
320
|
-
nets.forEach(item => console.log(item.join(" | ")));
|
|
321
|
-
}
|
|
322
|
-
dumpData && environment.writeFileSync(dumpDirectory + 'tree.lisp', tree.toStringTree(null, parser));
|
|
323
|
-
dumpData && environment.writeFileSync(dumpDirectory + 'raw-parser.txt', visitor.logger.dump());
|
|
324
|
-
if (throwError) {
|
|
325
|
-
throw throwError;
|
|
326
|
-
}
|
|
327
|
-
let svgOutput = "";
|
|
328
|
-
if (errors.length === 0) {
|
|
329
|
-
const { frameComponent } = visitor.applySheetFrameComponent();
|
|
330
|
-
const { sequence, nets } = visitor.getGraph();
|
|
331
|
-
if (enableBom && bomOutputPath) {
|
|
332
|
-
const documentVariable = visitor.getScope().variables.get('document');
|
|
333
|
-
const bomConfig = documentVariable.bom;
|
|
334
|
-
const bomData = (0, BomGeneration_js_1.generateBom)(bomConfig, visitor.getScope().getInstances());
|
|
335
|
-
const bomCsvOutput = (0, BomGeneration_js_1.generateBomCSV)(bomData);
|
|
336
|
-
await (0, BomGeneration_js_1.saveBomOutputCsv)(environment, bomCsvOutput, bomOutputPath);
|
|
337
|
-
console.log('Generated BOM file', bomOutputPath);
|
|
338
|
-
}
|
|
339
|
-
const tmpSequence = (0, utils_js_1.generateDebugSequenceAction)(sequence).map(item => (0, utils_js_1.sequenceActionString)(item));
|
|
340
|
-
dumpData && environment.writeFileSync(dumpDirectory + 'raw-sequence.txt', tmpSequence.join('\n'));
|
|
341
|
-
try {
|
|
342
|
-
let fileExtension = null;
|
|
343
|
-
let outputDefaultZoom = globals_js_1.defaultZoomScale;
|
|
344
|
-
if (outputPath) {
|
|
345
|
-
fileExtension = path_1.default.extname(outputPath).substring(1);
|
|
346
|
-
}
|
|
347
|
-
for (let i = 0; i < parseHandlers.length; i++) {
|
|
348
|
-
const handler = parseHandlers[i];
|
|
349
|
-
if (handler.beforeRender) {
|
|
350
|
-
const keepParsing = handler.parse(visitor, outputPath, fileExtension);
|
|
351
|
-
if (!keepParsing) {
|
|
352
|
-
return {
|
|
353
|
-
svgOutput: null,
|
|
354
|
-
errors
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
const logger = new logger_js_1.Logger();
|
|
360
|
-
const graphEngine = new graph_js_1.NetGraph(logger);
|
|
361
|
-
const layoutEngine = new layout_js_1.LayoutEngine(logger);
|
|
362
|
-
const layoutTimer = new utils_js_1.SimpleStopwatch();
|
|
363
|
-
let sheetFrames;
|
|
364
|
-
try {
|
|
365
|
-
const { graph, containerFrames } = graphEngine.generateLayoutGraph(sequence, nets);
|
|
366
|
-
sheetFrames = layoutEngine.runLayout(graph, containerFrames, nets);
|
|
367
|
-
if (enableErc) {
|
|
368
|
-
const ercResults = (0, rules_js_1.EvaluateERCRules)(visitor, graph, nets);
|
|
369
|
-
if (ercResults.length > 0) {
|
|
370
|
-
console.log(`ERC found ${ercResults.length} items:`);
|
|
371
|
-
ercResults.forEach((item, index) => {
|
|
372
|
-
console.log(`${(index + 1).toString().padStart(3)}. line ${item.start.line}, column ${item.start.column}: ${item.type} - ${item.message}`);
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
console.log('No ERC issues found');
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
catch (err) {
|
|
381
|
-
throw new utils_js_1.RenderError(`Error during layout generation: ${err}`, 'layout');
|
|
382
|
-
}
|
|
383
|
-
layoutEngine.printWarnings();
|
|
384
|
-
showStats && console.log('Layout took:', layoutTimer.lap());
|
|
385
|
-
dumpData && environment.writeFileSync(dumpDirectory + 'raw-layout.txt', layoutEngine.logger.dump());
|
|
386
|
-
const generateSvgTimer = new utils_js_1.SimpleStopwatch();
|
|
387
|
-
const renderLogger = new logger_js_1.Logger();
|
|
388
|
-
let svgCanvas;
|
|
389
|
-
try {
|
|
390
|
-
svgCanvas = (0, render_js_1.renderSheetsToSVG)(sheetFrames, renderLogger);
|
|
391
|
-
}
|
|
392
|
-
catch (err) {
|
|
393
|
-
throw new utils_js_1.RenderError(`Error during SVG generation: ${err}`, 'svg_generation');
|
|
394
|
-
}
|
|
395
|
-
showStats && console.log('Render took:', generateSvgTimer.lap());
|
|
396
|
-
dumpData && environment.writeFileSync(dumpDirectory + 'raw-render.txt', renderLogger.dump());
|
|
397
|
-
try {
|
|
398
|
-
if (fileExtension === "pdf") {
|
|
399
|
-
outputDefaultZoom = 1;
|
|
400
|
-
}
|
|
401
|
-
svgOutput = (0, render_js_1.generateSvgOutput)(svgCanvas, outputDefaultZoom);
|
|
402
|
-
}
|
|
403
|
-
catch (err) {
|
|
404
|
-
throw new utils_js_1.RenderError(`Error generating SVG output: ${err}`, 'svg_output');
|
|
405
|
-
}
|
|
406
|
-
if (outputPath) {
|
|
407
|
-
if (fileExtension === 'svg') {
|
|
408
|
-
try {
|
|
409
|
-
environment.writeFileSync(outputPath, svgOutput);
|
|
410
|
-
}
|
|
411
|
-
catch (err) {
|
|
412
|
-
throw new utils_js_1.RenderError(`Error writing SVG file: ${err}`, 'file_output');
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
else if (fileExtension === 'pdf') {
|
|
416
|
-
let sheetSize = "A4";
|
|
417
|
-
let sheetSizeDefined = false;
|
|
418
|
-
if (frameComponent) {
|
|
419
|
-
sheetSize = frameComponent.getParam(Frame_js_1.FrameParamKeys.PaperSize);
|
|
420
|
-
sheetSizeDefined = true;
|
|
421
|
-
}
|
|
422
|
-
try {
|
|
423
|
-
const doc = new pdfkit_1.default({
|
|
424
|
-
layout: 'landscape',
|
|
425
|
-
size: sheetSize
|
|
426
|
-
});
|
|
427
|
-
const outputStream = environment.createWriteStream(outputPath);
|
|
428
|
-
(0, render_js_1.generatePdfOutput)(doc, svgCanvas, sheetSize, sheetSizeDefined, outputDefaultZoom);
|
|
429
|
-
doc.pipe(outputStream);
|
|
430
|
-
doc.end();
|
|
431
|
-
}
|
|
432
|
-
catch (err) {
|
|
433
|
-
throw new utils_js_1.RenderError(`Error generating PDF file: ${err}`, 'pdf_output');
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
throw new utils_js_1.RenderError(`Invalid output format: ${fileExtension}`, 'file_output');
|
|
438
|
-
}
|
|
439
|
-
console.log('Generated file', outputPath);
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
catch (err) {
|
|
443
|
-
throw new utils_js_1.RenderError(`Error during rendering: ${err}`, 'output_generation');
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
return {
|
|
447
|
-
svgOutput,
|
|
448
|
-
errors
|
|
449
|
-
};
|
|
450
|
-
}
|
|
451
|
-
exports.renderScriptCustom = renderScriptCustom;
|
|
452
|
-
class ParseOutputHandler {
|
|
453
|
-
constructor() {
|
|
454
|
-
this.beforeRender = false;
|
|
455
|
-
this.afterRender = false;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
exports.ParseOutputHandler = ParseOutputHandler;
|
|
459
|
-
class KiCadNetListOutputHandler extends ParseOutputHandler {
|
|
460
|
-
constructor() {
|
|
461
|
-
super(...arguments);
|
|
462
|
-
this.beforeRender = true;
|
|
463
|
-
}
|
|
464
|
-
parse(visitor, outputPath, fileExtension) {
|
|
465
|
-
if (outputPath !== null && fileExtension === "net") {
|
|
466
|
-
const { tree: kiCadNetList, missingFootprints } = (0, export_js_1.generateKiCadNetList)(visitor.getNetList());
|
|
467
|
-
missingFootprints.forEach(entry => {
|
|
468
|
-
console.log(`${entry.refdes} (${entry.instanceName}) does not have footprint`);
|
|
469
|
-
});
|
|
470
|
-
visitor.environment.writeFileSync(outputPath, (0, export_js_1.printTree)(kiCadNetList));
|
|
471
|
-
console.log('Generated file', outputPath);
|
|
472
|
-
return false;
|
|
473
|
-
}
|
|
474
|
-
return true;
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
exports.KiCadNetListOutputHandler = KiCadNetListOutputHandler;
|
|
59
|
+
})(RefdesOutputType || (exports.RefdesOutputType = RefdesOutputType = {}));
|
|
478
60
|
function detectJSModuleType() {
|
|
479
61
|
if (typeof __filename === 'undefined' &&
|
|
480
62
|
typeof __dirname === 'undefined') {
|
|
@@ -518,49 +100,3 @@ function milsToMM(value) {
|
|
|
518
100
|
return (0, utils_js_1.resolveToNumericValue)(value.toBigNumber().mul(new big_js_1.default(globals_js_1.MilsToMM)).round(6));
|
|
519
101
|
}
|
|
520
102
|
exports.milsToMM = milsToMM;
|
|
521
|
-
function pxToMM(value) {
|
|
522
|
-
return value * globals_js_1.PxToMM;
|
|
523
|
-
}
|
|
524
|
-
exports.pxToMM = pxToMM;
|
|
525
|
-
const PaperSizes = {
|
|
526
|
-
'A0': [1189, 841],
|
|
527
|
-
'A1': [841, 594],
|
|
528
|
-
'A2': [594, 420],
|
|
529
|
-
'A3': [420, 297],
|
|
530
|
-
'A4': [297, 210],
|
|
531
|
-
'A5': [210, 148],
|
|
532
|
-
'A6': [148, 105],
|
|
533
|
-
};
|
|
534
|
-
exports.PaperGridReferences = {
|
|
535
|
-
'A0': [16, 24],
|
|
536
|
-
'A1': [12, 16],
|
|
537
|
-
'A2': [8, 12],
|
|
538
|
-
'A3': [6, 8],
|
|
539
|
-
'A4': [4, 6],
|
|
540
|
-
};
|
|
541
|
-
function isSupportedPaperSize(type) {
|
|
542
|
-
if (PaperSizes[type]) {
|
|
543
|
-
return true;
|
|
544
|
-
}
|
|
545
|
-
return false;
|
|
546
|
-
}
|
|
547
|
-
exports.isSupportedPaperSize = isSupportedPaperSize;
|
|
548
|
-
function getPaperSize(type, margin = globals_js_1.defaultPageMarginMM) {
|
|
549
|
-
if (PaperSizes[type]) {
|
|
550
|
-
const [width, height] = PaperSizes[type];
|
|
551
|
-
const useWidth = width - margin * 2;
|
|
552
|
-
const useHeight = height - margin * 2;
|
|
553
|
-
return {
|
|
554
|
-
width: Math.floor(useWidth * (1 / globals_js_1.MilsToMM)),
|
|
555
|
-
height: Math.floor(useHeight * (1 / globals_js_1.MilsToMM)),
|
|
556
|
-
widthMM: useWidth,
|
|
557
|
-
heightMM: useHeight,
|
|
558
|
-
originalWidthMM: width,
|
|
559
|
-
originalHeightMM: height,
|
|
560
|
-
};
|
|
561
|
-
}
|
|
562
|
-
else {
|
|
563
|
-
return getPaperSize('A4');
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
exports.getPaperSize = getPaperSize;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadImportsIntoMemoryStore = exports.resolveAllImportFilepaths = exports.extractImportNames = void 0;
|
|
4
|
+
const IMPORT_SIMPLE_RE = /^import\s+"([^"]+)"/;
|
|
5
|
+
const IMPORT_FROM_RE = /^from\s+"([^"]*)"\s+import\b/;
|
|
6
|
+
function extractImportNames(fileData) {
|
|
7
|
+
const names = [];
|
|
8
|
+
for (const rawLine of fileData.split('\n')) {
|
|
9
|
+
const line = rawLine.trim();
|
|
10
|
+
if (line === '' || line.startsWith('//') || line.startsWith('#'))
|
|
11
|
+
continue;
|
|
12
|
+
const simple = IMPORT_SIMPLE_RE.exec(line);
|
|
13
|
+
if (simple) {
|
|
14
|
+
names.push(simple[1]);
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const from = IMPORT_FROM_RE.exec(line);
|
|
18
|
+
if (from) {
|
|
19
|
+
names.push(from[1]);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
return names;
|
|
25
|
+
}
|
|
26
|
+
exports.extractImportNames = extractImportNames;
|
|
27
|
+
async function resolveImportPath(name, environment) {
|
|
28
|
+
let useName = name;
|
|
29
|
+
if (!name.endsWith('.cst')) {
|
|
30
|
+
useName = name + '.cst';
|
|
31
|
+
}
|
|
32
|
+
const absPath = environment.getAbsPathRelativeToCurrentFolder(useName);
|
|
33
|
+
const executionDirectory = environment.getCurrentDirectory();
|
|
34
|
+
const relPath = environment.relative(executionDirectory, absPath);
|
|
35
|
+
if (await environment.exists(relPath)) {
|
|
36
|
+
return relPath;
|
|
37
|
+
}
|
|
38
|
+
const libPath = environment.getRelativeToDefaultLibs(useName);
|
|
39
|
+
if (await environment.exists(libPath)) {
|
|
40
|
+
return libPath;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
async function resolveAllImportFilepaths(rootFilePath, scriptData, environment) {
|
|
45
|
+
const visited = new Set();
|
|
46
|
+
const result = [];
|
|
47
|
+
async function walk(filePath, passedInScriptData) {
|
|
48
|
+
if (filePath !== undefined && filePath !== null && filePath !== '') {
|
|
49
|
+
if (visited.has(filePath))
|
|
50
|
+
return;
|
|
51
|
+
visited.add(filePath);
|
|
52
|
+
}
|
|
53
|
+
let fileData;
|
|
54
|
+
if (passedInScriptData === undefined || passedInScriptData === null) {
|
|
55
|
+
try {
|
|
56
|
+
fileData = await environment.readFile(filePath, { encoding: 'utf8' });
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
fileData = passedInScriptData;
|
|
64
|
+
}
|
|
65
|
+
if (fileData) {
|
|
66
|
+
const importNames = extractImportNames(fileData);
|
|
67
|
+
const savedFile = environment.getCurrentFile();
|
|
68
|
+
if (filePath) {
|
|
69
|
+
environment.setCurrentFile(filePath);
|
|
70
|
+
}
|
|
71
|
+
for (const name of importNames) {
|
|
72
|
+
const resolvedPath = await resolveImportPath(name, environment);
|
|
73
|
+
if (resolvedPath) {
|
|
74
|
+
result.push(resolvedPath);
|
|
75
|
+
await walk(resolvedPath);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (filePath) {
|
|
79
|
+
environment.setCurrentFile(savedFile);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
await walk(rootFilePath, scriptData);
|
|
84
|
+
const uniqueResults = new Set(result);
|
|
85
|
+
return Array.from(uniqueResults);
|
|
86
|
+
}
|
|
87
|
+
exports.resolveAllImportFilepaths = resolveAllImportFilepaths;
|
|
88
|
+
async function loadImportsIntoMemoryStore(filepaths, environment) {
|
|
89
|
+
const store = new Map();
|
|
90
|
+
for (const filePath of filepaths) {
|
|
91
|
+
if (store.has(filePath))
|
|
92
|
+
continue;
|
|
93
|
+
try {
|
|
94
|
+
const content = await environment.readFile(filePath, { encoding: 'utf8' });
|
|
95
|
+
store.set(filePath, content);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return store;
|
|
101
|
+
}
|
|
102
|
+
exports.loadImportsIntoMemoryStore = loadImportsIntoMemoryStore;
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,17 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./draw_symbols.js"), exports);
|
|
17
|
+
__exportStar(require("./render/draw_symbols.js"), exports);
|
|
18
18
|
__exportStar(require("./execute.js"), exports);
|
|
19
19
|
__exportStar(require("./export.js"), exports);
|
|
20
|
-
__exportStar(require("./geometry.js"), exports);
|
|
20
|
+
__exportStar(require("./render/geometry.js"), exports);
|
|
21
21
|
__exportStar(require("./globals.js"), exports);
|
|
22
22
|
__exportStar(require("./helpers.js"), exports);
|
|
23
|
-
__exportStar(require("./layout.js"), exports);
|
|
23
|
+
__exportStar(require("./render/layout.js"), exports);
|
|
24
24
|
__exportStar(require("./lexer.js"), exports);
|
|
25
|
+
__exportStar(require("./LexerDiagnosticListener.js"), exports);
|
|
25
26
|
__exportStar(require("./logger.js"), exports);
|
|
26
27
|
__exportStar(require("./parser.js"), exports);
|
|
27
|
-
__exportStar(require("./render.js"), exports);
|
|
28
|
+
__exportStar(require("./render/render.js"), exports);
|
|
28
29
|
__exportStar(require("./utils.js"), exports);
|
|
29
30
|
__exportStar(require("./visitor.js"), exports);
|
|
30
31
|
__exportStar(require("./sizing.js"), exports);
|
|
@@ -33,5 +34,5 @@ __exportStar(require("./builtinMethods.js"), exports);
|
|
|
33
34
|
__exportStar(require("./validate/SymbolTable.js"), exports);
|
|
34
35
|
__exportStar(require("./validate/SymbolValidatorResolveVisitor.js"), exports);
|
|
35
36
|
__exportStar(require("./validate/SymbolValidatorVisitor.js"), exports);
|
|
36
|
-
__exportStar(require("./environment.js"), exports);
|
|
37
|
-
__exportStar(require("./RefdesAnnotationVisitor.js"), exports);
|
|
37
|
+
__exportStar(require("./environment/environment.js"), exports);
|
|
38
|
+
__exportStar(require("./annotate/RefdesAnnotationVisitor.js"), exports);
|