circuitscript 0.1.19 → 0.1.22
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 +22 -0
- package/dist/cjs/ComponentAnnotater.js +88 -0
- package/dist/cjs/RefdesAnnotationVisitor.js +197 -0
- package/dist/cjs/antlr/CircuitScriptLexer.js +202 -197
- package/dist/cjs/antlr/CircuitScriptParser.js +964 -831
- package/dist/cjs/environment.js +15 -1
- package/dist/cjs/execute.js +45 -2
- package/dist/cjs/graph.js +23 -2
- package/dist/cjs/helpers.js +21 -4
- package/dist/cjs/layout.js +3 -0
- package/dist/cjs/lexer.js +21 -9
- package/dist/cjs/main.js +13 -0
- package/dist/cjs/objects/ClassComponent.js +4 -1
- package/dist/cjs/objects/ExecutionScope.js +1 -0
- package/dist/cjs/parser.js +1 -0
- package/dist/cjs/visitor.js +119 -71
- package/dist/esm/BaseVisitor.js +22 -0
- package/dist/esm/ComponentAnnotater.js +84 -0
- package/dist/esm/RefdesAnnotationVisitor.js +196 -0
- package/dist/esm/antlr/CircuitScriptLexer.js +202 -197
- package/dist/esm/antlr/CircuitScriptParser.js +960 -829
- package/dist/esm/antlr/CircuitScriptVisitor.js +2 -0
- package/dist/esm/environment.js +15 -1
- package/dist/esm/execute.js +45 -2
- package/dist/esm/graph.js +23 -2
- package/dist/esm/helpers.js +21 -4
- package/dist/esm/layout.js +4 -0
- package/dist/esm/lexer.js +21 -9
- package/dist/esm/main.js +13 -0
- package/dist/esm/objects/ClassComponent.js +4 -1
- package/dist/esm/objects/ExecutionScope.js +1 -0
- package/dist/esm/parser.js +1 -0
- package/dist/esm/visitor.js +117 -69
- package/dist/types/BaseVisitor.d.ts +3 -0
- package/dist/types/ComponentAnnotater.d.ts +16 -0
- package/dist/types/RefdesAnnotationVisitor.d.ts +35 -0
- package/dist/types/antlr/CircuitScriptLexer.d.ts +15 -14
- package/dist/types/antlr/CircuitScriptParser.d.ts +80 -60
- package/dist/types/antlr/CircuitScriptVisitor.d.ts +4 -0
- package/dist/types/environment.d.ts +1 -0
- package/dist/types/execute.d.ts +8 -1
- package/dist/types/helpers.d.ts +6 -3
- package/dist/types/layout.d.ts +2 -0
- package/dist/types/lexer.d.ts +1 -1
- package/dist/types/objects/ClassComponent.d.ts +9 -0
- package/dist/types/objects/ExecutionScope.d.ts +2 -1
- package/dist/types/objects/types.d.ts +1 -0
- package/dist/types/parser.d.ts +2 -1
- package/dist/types/visitor.d.ts +8 -1
- package/package.json +1 -1
package/dist/types/execute.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export declare class ExecutionContext {
|
|
|
30
30
|
parentContext: ExecutionContext;
|
|
31
31
|
componentAngleFollowsWire: boolean;
|
|
32
32
|
warnings: ExecutionWarning[];
|
|
33
|
+
indexedStack: Map<ParserRuleContext, {
|
|
34
|
+
index: number;
|
|
35
|
+
funcCallIndex: Map<ParserRuleContext, number>;
|
|
36
|
+
}>;
|
|
33
37
|
constructor(name: string, namespace: string, netNamespace: string, executionLevel: number | undefined, scopeLevel: number | undefined, silent: boolean | undefined, logger: Logger, warnings: ExecutionWarning[], parent: ExecutionContext);
|
|
34
38
|
logWarning(message: string, context?: ParserRuleContext, fileName?: string): void;
|
|
35
39
|
log(...params: any[]): void;
|
|
@@ -68,7 +72,10 @@ export declare class ExecutionContext {
|
|
|
68
72
|
atPointBlock(): void;
|
|
69
73
|
toPointBlock(): void;
|
|
70
74
|
getPointBlockLocation(): [component: ClassComponent, pin: number, wireId: number];
|
|
75
|
+
getParentBreakContext(): null | ParserRuleContext;
|
|
71
76
|
addBreakContext(ctx: ParserRuleContext): void;
|
|
77
|
+
setBreakContextIndex(index: number): void;
|
|
78
|
+
resetBreakContextFunctionCalls(): void;
|
|
72
79
|
popBreakContext(): ParserRuleContext;
|
|
73
80
|
getBreakContext(): ParserRuleContext;
|
|
74
81
|
createFunction(functionName: string, __runFunc: CFunction, source?: ParserRuleContext, uniqueId?: string): void;
|
|
@@ -77,7 +84,7 @@ export declare class ExecutionContext {
|
|
|
77
84
|
resolveVariable(executionStack: ExecutionContext[], idName: string, trailers?: string[]): AnyReference;
|
|
78
85
|
resolveTrailers(type: ReferenceTypes, item: any, trailers?: string[]): AnyReference;
|
|
79
86
|
callFunction(functionName: string, functionParams: CallableParameter[], executionStack: ExecutionContext[], netNamespace: string): CFunctionResult;
|
|
80
|
-
mergeScope(childScope: ExecutionScope, namespace: string):
|
|
87
|
+
mergeScope(childScope: ExecutionScope, namespace: string): ClassComponent[];
|
|
81
88
|
addWire(segments: [string, (number | UnitDimension)?][]): void;
|
|
82
89
|
addPoint(pointId: string, userDefined?: boolean): ComponentPin;
|
|
83
90
|
private getPointSymbol;
|
package/dist/types/helpers.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export type ScriptOptions = {
|
|
|
18
18
|
dumpData: boolean;
|
|
19
19
|
showStats: boolean;
|
|
20
20
|
environment: NodeScriptEnvironment;
|
|
21
|
+
inputPath?: string;
|
|
22
|
+
updateSource: boolean;
|
|
23
|
+
saveAnnotatedCopy: string | boolean;
|
|
21
24
|
};
|
|
22
25
|
export declare function prepareFile(textData: string): {
|
|
23
26
|
parser: CircuitScriptParser;
|
|
@@ -42,11 +45,11 @@ export declare function renderScriptCustom(scriptData: string, outputPath: strin
|
|
|
42
45
|
export declare abstract class ParseOutputHandler {
|
|
43
46
|
beforeRender: boolean;
|
|
44
47
|
afterRender: boolean;
|
|
45
|
-
abstract parse(visitor: ParserVisitor, outputPath: string | null, fileExtension: string | null): boolean;
|
|
48
|
+
abstract parse(visitor: ParserVisitor, outputPath: string | null, fileExtension: string | null, extra: any | null): boolean;
|
|
46
49
|
}
|
|
47
50
|
export declare class KiCadNetListOutputHandler extends ParseOutputHandler {
|
|
48
|
-
|
|
49
|
-
parse(visitor: ParserVisitor, outputPath: string | null, fileExtension: string | null): boolean;
|
|
51
|
+
afterRender: boolean;
|
|
52
|
+
parse(visitor: ParserVisitor, outputPath: string | null, fileExtension: string | null, extra?: any): boolean;
|
|
50
53
|
}
|
|
51
54
|
export declare function detectJSModuleType(): JSModuleType;
|
|
52
55
|
export declare class UnitDimension {
|
package/dist/types/layout.d.ts
CHANGED
|
@@ -107,6 +107,7 @@ export declare class RenderText extends RenderObject {
|
|
|
107
107
|
constructor(text: string);
|
|
108
108
|
}
|
|
109
109
|
export declare class RenderFrame extends RenderObject {
|
|
110
|
+
static FrameIdCounter: number;
|
|
110
111
|
bounds: BoundBox | null;
|
|
111
112
|
frame: Frame;
|
|
112
113
|
innerItems: (RenderComponent | RenderFrame | RenderText)[];
|
|
@@ -121,6 +122,7 @@ export declare class RenderFrame extends RenderObject {
|
|
|
121
122
|
subgraphId: string;
|
|
122
123
|
renderType: RenderFrameType;
|
|
123
124
|
containsTitle: boolean;
|
|
125
|
+
frameId: number;
|
|
124
126
|
constructor(frame: Frame, type?: RenderFrameType);
|
|
125
127
|
toString(): string;
|
|
126
128
|
}
|
package/dist/types/lexer.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare class MainLexer extends CircuitScriptLexer {
|
|
|
10
10
|
nextToken(): Token;
|
|
11
11
|
createDedent(): Token;
|
|
12
12
|
getCharIndex(): number;
|
|
13
|
-
commonToken(type: number, text: string): Token;
|
|
13
|
+
commonToken(type: number, text: string, start?: number, stop?: number): Token;
|
|
14
14
|
getIndentationCount(whitespace: string): number;
|
|
15
15
|
atStartOfInput(): boolean;
|
|
16
16
|
openBrace(): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ParserRuleContext } from 'antlr4ng';
|
|
1
2
|
import { Expressions_blockContext } from 'src/antlr/CircuitScriptParser.js';
|
|
2
3
|
import { SymbolDrawingCommands } from '../draw_symbols.js';
|
|
3
4
|
import { Net } from './Net.js';
|
|
@@ -31,6 +32,9 @@ export declare class ClassComponent {
|
|
|
31
32
|
useWireOrientationAngle: boolean;
|
|
32
33
|
didSetWireOrientationAngle: boolean;
|
|
33
34
|
assignedRefDes: string | null;
|
|
35
|
+
placeHolderRefDes: string | null;
|
|
36
|
+
ctxReferences: CtxReference[];
|
|
37
|
+
_creationIndex: number;
|
|
34
38
|
constructor(instanceName: string, numPins: number);
|
|
35
39
|
setupPins(): void;
|
|
36
40
|
getDefaultPin(): PinId;
|
|
@@ -55,3 +59,8 @@ export declare class ModuleComponent extends ClassComponent {
|
|
|
55
59
|
moduleExecutionContextName?: string;
|
|
56
60
|
modulePinIdToPortMap?: Map<number, ClassComponent>;
|
|
57
61
|
}
|
|
62
|
+
export type CtxReference = {
|
|
63
|
+
ctx: ParserRuleContext;
|
|
64
|
+
indexedStack: [ParserRuleContext, number][];
|
|
65
|
+
creationFlag: boolean;
|
|
66
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClassComponent } from './ClassComponent.js';
|
|
2
2
|
import { Net } from './Net.js';
|
|
3
|
-
import { CFunctionEntry, ComponentPinNet, ComponentPinNetPair, ComponentPinWireId, ParseSymbolType, ValueType } from './types.js';
|
|
3
|
+
import { CFunction, CFunctionEntry, ComponentPinNet, ComponentPinNetPair, ComponentPinWireId, ParseSymbolType, ValueType } from './types.js';
|
|
4
4
|
import { BlockTypes, LayoutDirection } from '../globals.js';
|
|
5
5
|
import { Wire, WireSegment } from './Wire.js';
|
|
6
6
|
import { Frame } from './Frame.js';
|
|
@@ -14,6 +14,7 @@ export declare class ExecutionScope {
|
|
|
14
14
|
private nets;
|
|
15
15
|
instances: Map<string, ClassComponent>;
|
|
16
16
|
functions: Map<string, CFunctionEntry>;
|
|
17
|
+
functionCounter: Map<CFunction, number>;
|
|
17
18
|
variables: Map<string, ValueType | ClassComponent>;
|
|
18
19
|
symbols: Map<string, {
|
|
19
20
|
type: ParseSymbolType;
|
package/dist/types/parser.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { CircuitScriptParser, ScriptContext } from './antlr/CircuitScriptParser.js';
|
|
2
|
-
import { ANTLRErrorListener, ATNConfigSet, ATNSimulator, BitSet, DFA, Parser, RecognitionException, Recognizer, Token } from 'antlr4ng';
|
|
2
|
+
import { ANTLRErrorListener, ATNConfigSet, ATNSimulator, BitSet, CommonTokenStream, DFA, Parser, RecognitionException, Recognizer, Token } from 'antlr4ng';
|
|
3
3
|
import { BaseVisitor, OnErrorHandler } from './BaseVisitor.js';
|
|
4
4
|
export declare function parseFileWithVisitor(visitor: BaseVisitor, data: string): Promise<{
|
|
5
5
|
tree: ScriptContext;
|
|
6
6
|
parser: CircuitScriptParser;
|
|
7
|
+
tokens: CommonTokenStream;
|
|
7
8
|
hasError: boolean;
|
|
8
9
|
hasParseError: boolean;
|
|
9
10
|
parserTimeTaken: number;
|
package/dist/types/visitor.d.ts
CHANGED
|
@@ -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, 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';
|
|
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, Annotation_comment_exprContext, At_block_headerContext } 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';
|
|
@@ -7,8 +7,10 @@ import { Net } from './objects/Net.js';
|
|
|
7
7
|
import { BaseVisitor } from './BaseVisitor.js';
|
|
8
8
|
import { ParserRuleContext } from 'antlr4ng';
|
|
9
9
|
export declare class ParserVisitor extends BaseVisitor {
|
|
10
|
+
componentCreationIndex: number;
|
|
10
11
|
visitKeyword_assignment_expr: (ctx: Keyword_assignment_exprContext) => void;
|
|
11
12
|
visitPin_select_expr: (ctx: Pin_select_exprContext) => void;
|
|
13
|
+
trackNewComponentCreated: (callback: () => void) => boolean;
|
|
12
14
|
visitAdd_component_expr: (ctx: Add_component_exprContext) => void;
|
|
13
15
|
visitAt_component_expr: (ctx: At_component_exprContext) => ComponentPin;
|
|
14
16
|
visitTo_component_expr: (ctx: To_component_exprContext) => ComponentPin;
|
|
@@ -40,6 +42,7 @@ export declare class ParserVisitor extends BaseVisitor {
|
|
|
40
42
|
visitFunction_def_expr: (ctx: Function_def_exprContext) => void;
|
|
41
43
|
visitPin_select_expr2: (ctx: Pin_select_expr2Context) => void;
|
|
42
44
|
visitAt_block_pin_expr: (ctx: At_block_pin_exprContext) => void;
|
|
45
|
+
visitAt_block_header: (ctx: At_block_headerContext) => void;
|
|
43
46
|
visitAt_block: (ctx: At_blockContext) => void;
|
|
44
47
|
visitAt_block_pin_expression_simple: (ctx: At_block_pin_expression_simpleContext) => void;
|
|
45
48
|
visitAt_block_pin_expression_complex: (ctx: At_block_pin_expression_complexContext) => void;
|
|
@@ -56,6 +59,7 @@ export declare class ParserVisitor extends BaseVisitor {
|
|
|
56
59
|
visitIf_inner_expr: (ctx: If_inner_exprContext) => void;
|
|
57
60
|
visitWhile_expr: (ctx: While_exprContext) => void;
|
|
58
61
|
visitFor_expr: (ctx: For_exprContext) => void;
|
|
62
|
+
visitAnnotation_comment_expr: (ctx: Annotation_comment_exprContext) => void;
|
|
59
63
|
private resolveDataExpr;
|
|
60
64
|
private resolveDataValue;
|
|
61
65
|
pinTypes: PinTypes[];
|
|
@@ -88,6 +92,9 @@ export declare class ParserVisitor extends BaseVisitor {
|
|
|
88
92
|
private getPropertyExprList;
|
|
89
93
|
getWarnings(): ExecutionWarning[];
|
|
90
94
|
}
|
|
95
|
+
export declare const ComponentRefDesPrefixes: {
|
|
96
|
+
[key: string]: string;
|
|
97
|
+
};
|
|
91
98
|
export type NetListItem = {
|
|
92
99
|
instanceName: string;
|
|
93
100
|
instance: ClassComponent;
|