@foxglove/omgidl-parser
Version:
Parse OMG IDL to flattened definitions for serialization
26 lines • 1.57 kB
TypeScript
import { AnyIDLNode, IConstantIDLNode, IIDLNode } from "./interfaces";
import { BaseASTNode } from "../astTypes";
/** Class used to resolve ASTNodes to IDLMessageDefinitions
* There is a subclass of this class for each `declarator` type on the ASTNode.
* This class is meant to provide functions and variables that exist across all of the nodes to help them resolve to complete message definitions.
*/
export declare abstract class IDLNode<T extends BaseASTNode = BaseASTNode> implements IIDLNode<T> {
/** Map of all IDLNodes in a schema definition */
protected map: Map<string, AnyIDLNode>;
/** Unresolved node parsed directly from schema */
protected readonly astNode: T;
/** Array of strings that represent namespace scope that astNode is contained within. */
readonly scopePath: string[];
constructor(scopePath: string[], astNode: T, idlMap: Map<string, AnyIDLNode>);
get declarator(): T["declarator"];
get name(): BaseASTNode["name"];
get annotations(): BaseASTNode["annotations"];
/** Returns scoped identifier of the astNode: (...scopePath::name) */
get scopedIdentifier(): string;
/** Gets any node in map. Fails if not found.*/
protected getNode(scopePath: string[], name: string): AnyIDLNode;
/** Gets a constant node under a local-to-this-node or scoped identifier. Fails if not a ConstantNode */
protected getConstantNode(identifier: string, scopePath?: string[]): IConstantIDLNode;
}
export declare function toScopedIdentifier(path: string[]): string;
//# sourceMappingURL=IDLNode.d.ts.map