@specs-feup/metafor
Version:
A Fortran source-to-source compiler written in Typescript
93 lines • 2.44 kB
TypeScript
import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js";
type PrivateMapper = {
"Joinpoint": typeof Joinpoint;
"FileJp": typeof FileJp;
"Program": typeof Program;
"Statement": typeof Statement;
};
type DefaultAttributeMap = {
FileJp: "name";
};
export declare class Joinpoint extends LaraJoinPoint {
/**
* @internal
*/
static readonly _defaultAttributeInfo: {
readonly map?: DefaultAttributeMap;
readonly name: string | null;
readonly type?: PrivateMapper;
readonly jpMapper?: typeof JoinpointMapper;
};
/**
* String with the code represented by this node
*/
get code(): string;
/**
* Returns the parent node in the AST, or undefined if it is the root node
*/
get parent(): Joinpoint;
/**
* Returns the 'program' join point
*/
get root(): Program;
/**
* Replaces this node with the given node
*/
replaceWith(node: Joinpoint): Joinpoint;
}
/**
* Represents a source file (e.g., .f90)
*/
export declare class FileJp extends Joinpoint {
/**
* @internal
*/
static readonly _defaultAttributeInfo: {
readonly map?: DefaultAttributeMap;
readonly name: string | null;
readonly type?: PrivateMapper;
readonly jpMapper?: typeof JoinpointMapper;
};
/**
* The name of the file
*/
get name(): string;
}
/**
* Represents the complete program and is the top-most join point in the hierarchy
*/
export declare class Program extends Joinpoint {
/**
* @internal
*/
static readonly _defaultAttributeInfo: {
readonly map?: DefaultAttributeMap;
readonly name: string | null;
readonly type?: PrivateMapper;
readonly jpMapper?: typeof JoinpointMapper;
};
}
/**
* Represents a Fortran statement
*/
export declare class Statement extends Joinpoint {
/**
* @internal
*/
static readonly _defaultAttributeInfo: {
readonly map?: DefaultAttributeMap;
readonly name: string | null;
readonly type?: PrivateMapper;
readonly jpMapper?: typeof JoinpointMapper;
};
get isFirst(): boolean;
get isLast(): boolean;
}
declare const JoinpointMapper: {
joinpoint: typeof Joinpoint;
file: typeof FileJp;
program: typeof Program;
statement: typeof Statement;
};
export {};
//# sourceMappingURL=Joinpoints.d.ts.map