UNPKG

@foxglove/omgidl-parser

Version:

Parse OMG IDL to flattened definitions for serialization

26 lines 1.57 kB
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