lysergic
Version:
Synaptic's neural network compiler
103 lines (102 loc) • 3.07 kB
TypeScript
export declare type BinaryOperator = '+' | '-' | '/' | '*' | '=' | '*=' | '/=' | '+=' | '-=' | '^' | '>' | '<' | '>=' | '<=' | '==' | 'max' | 'kronecker';
export declare type UnaryOperator = '-' | 'exp' | 'rand' | 'abs' | 'sqrt' | 'ln' | 'sign';
export declare abstract class Node {
children: Node[];
hasParenthesis: boolean;
nameMapping: {
[i: number]: string;
};
originalText: string;
constructor();
parent: Node;
addNode(node: Node | Node[]): void;
toString(): string;
readonly value: string;
inspect(): any;
}
export declare class ExpressionNode extends Node {
}
export declare class DocumentNode extends Node {
children: ExpressionNode[];
toString(): string;
}
export declare class ParameterNode extends ExpressionNode {
name: string;
constructor(name: string);
toString(): string;
}
export declare class ParametersNode extends Node {
children: ParameterNode[];
toString(): string;
}
export declare class BlockNode extends Node {
name: string;
children: ExpressionNode[];
toString(): string;
}
export declare class FunctionNode extends ExpressionNode {
name: string;
parameters: ParametersNode;
body: BlockNode;
toString(): string;
}
export declare class HeapPointer extends ExpressionNode {
position: ExpressionNode;
toString(): string;
}
export declare class HeapReferenceNode extends ExpressionNode {
position: number;
constructor(position: number);
toString(): string;
}
export declare class TernaryExpressionNode extends ExpressionNode {
condition: ExpressionNode;
truePart: ExpressionNode;
falsePart: ExpressionNode;
constructor();
toString(): string;
}
export declare class BinaryExpressionNode extends ExpressionNode {
lhs: ExpressionNode;
rhs: ExpressionNode;
operator: BinaryOperator;
toString(): string;
}
export declare class UnaryExpressionNode extends ExpressionNode {
rhs: ExpressionNode;
operator: UnaryOperator;
toString(): string;
}
export declare class FloatNumberNode extends ExpressionNode {
numericValue: number;
constructor(numericValue: number);
toString(): string;
}
export declare class IntNumberNode extends ExpressionNode {
numericValue: number;
constructor(numericValue: number);
toString(): string;
}
export declare class Variable extends HeapReferenceNode {
id: number;
key: string;
initialValue: number;
tag: string;
constructor(id: number, key: string, initialValue: number, tag: string);
}
export declare class VariableDeclaration extends ExpressionNode {
name: string;
type: 'int' | 'float';
initialValue: number;
constructor(name: string, type: 'int' | 'float', initialValue: number);
}
export declare class VariableReference extends ExpressionNode {
variable: VariableDeclaration;
constructor(variable: VariableDeclaration);
}
export declare class ForLoopNode extends ExpressionNode {
from: number;
to: number;
var: VariableReference;
expression: ExpressionNode;
}