UNPKG

@specs-feup/kadabra

Version:

A Java source-to-source compiler written in Typescript

1,275 lines 37.7 kB
import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; type PrivateMapper = { "Joinpoint": typeof Joinpoint; "NamedType": typeof NamedType; "App": typeof App; "Catch": typeof Catch; "Declaration": typeof Declaration; "Executable": typeof Executable; "Expression": typeof Expression; "Field": typeof Field; "FileJp": typeof FileJp; "LibClass": typeof LibClass; "LibMethod": typeof LibMethod; "Literal": typeof Literal; "Method": typeof Method; "New": typeof New; "Reference": typeof Reference; "SnippetExpr": typeof SnippetExpr; "Statement": typeof Statement; "Switch": typeof Switch; "Ternary": typeof Ternary; "This": typeof This; "Throw": typeof Throw; "Try": typeof Try; "Type": typeof Type; "TypeReference": typeof TypeReference; "UnaryExpression": typeof UnaryExpression; "Var": typeof Var; "XmlNode": typeof XmlNode; "AndroidManifest": typeof AndroidManifest; "Annotation": typeof Annotation; "AnonymousExec": typeof AnonymousExec; "ArrayAccess": typeof ArrayAccess; "Assert": typeof Assert; "Assignment": typeof Assignment; "BinaryExpression": typeof BinaryExpression; "Body": typeof Body; "Break": typeof Break; "Call": typeof Call; "CallStatement": typeof CallStatement; "Case": typeof Case; "Class": typeof Class; "Comment": typeof Comment; "Constructor": typeof Constructor; "Continue": typeof Continue; "Enum": typeof Enum; "EnumValue": typeof EnumValue; "FieldAccess": typeof FieldAccess; "If": typeof If; "InterfaceType": typeof InterfaceType; "LocalVariable": typeof LocalVariable; "Loop": typeof Loop; "OpAssignment": typeof OpAssignment; "Pragma": typeof Pragma; "Return": typeof Return; "SnippetStmt": typeof SnippetStmt; "XmlElement": typeof XmlElement; }; type DefaultAttributeMap = { NamedType: "name"; App: "name"; Declaration: "name"; Executable: "name"; Expression: "exprType"; Field: "name"; FileJp: "name"; LibClass: "name"; LibMethod: "name"; Literal: "value"; Method: "name"; New: "name"; Reference: "name"; SnippetExpr: "exprType"; Statement: "kind"; Switch: "kind"; Ternary: "exprType"; This: "exprType"; Throw: "kind"; Try: "kind"; Type: "name"; TypeReference: "name"; UnaryExpression: "operator"; Var: "name"; Annotation: "exprType"; AnonymousExec: "name"; ArrayAccess: "name"; Assert: "kind"; Assignment: "operator"; BinaryExpression: "operator"; Body: "kind"; Break: "kind"; Call: "name"; CallStatement: "kind"; Case: "kind"; Class: "name"; Comment: "type"; Constructor: "name"; Continue: "kind"; Enum: "name"; EnumValue: "name"; FieldAccess: "name"; If: "kind"; InterfaceType: "name"; LocalVariable: "name"; Loop: "type"; OpAssignment: "operator"; Pragma: "name"; Return: "kind"; SnippetStmt: "kind"; XmlElement: "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; }; /** * An array of the annotations of this node */ get annotations(): Annotation[]; /** * A string representation of the AST corresponding to this node */ get ast(): string; /** * Alias of attribute 'parent' */ get astParent(): Joinpoint; /** * Returns an array with the children of the node */ get children(): Joinpoint[]; /** * The source code corresponding to this join point */ get code(): string; get descendants(): Joinpoint[]; /** * Unique identifier for node */ get id(): string; /** * True if this node is considered a block of statements */ get isBlock(): boolean; /** * True if this node has the modifier 'final' */ get isFinal(): boolean; /** * True if the node is inside a loop header, false otherwise */ get isInsideLoopHeader(): boolean; /** * True if this node is considered a statement */ get isStatement(): boolean; /** * True if this node has the modifier 'static' */ get isStatic(): boolean; /** * Sibling nodes to the left of this node */ get left(): Joinpoint[]; get line(): number; set line(value: number | string); /** * An array of modifiers (e.g., final, static) applied to this node. If no modifiers are applied, or if the node does not support modifiers, returns an empty array */ get modifiers(): string[]; /** * An array of modifiers (e.g., final, static) applied to this node. If no modifiers are applied, or if the node does not support modifiers, returns an empty array */ set modifiers(value: string[]); /** * Returns the number of children of the node */ get numChildren(): number; get parent(): Joinpoint; /** * Sibling nodes to the right of this node */ get right(): Joinpoint[]; /** * Alias for attribute 'code' */ get srcCode(): string; /** * Returns the child of the node at the given index */ child(index: number): Joinpoint; getAncestor(type: string): Joinpoint; /** * True if this node has the given modifier */ hasModifier(modifier: string): boolean; copy(): Joinpoint; insertAfter(node: Joinpoint): Joinpoint; insertAfter(code: string): Joinpoint; insertBefore(node: Joinpoint): Joinpoint; insertBefore(code: string): Joinpoint; insertReplace(jp: Joinpoint): Joinpoint; insertReplace(code: string): Joinpoint; remove(): void; removeAnnotation(annotation: Annotation): void; removeModifier(modifier: string): void; replaceWith(jp: Joinpoint): Joinpoint; replaceWith(code: string): Joinpoint; setLine(value: number): void; setLine(value: string): void; setModifiers(modifiers: string[]): void; } export declare class NamedType extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * List of names of interfaces that this type implements */ get interfaces(): string[]; get javadoc(): string; /** * The simple name of the type */ get name(): string; /** * Package name of this type */ get packageName(): string; /** * The qualified name of this type, includes packages */ get qualifiedName(): string; /** * Name of the superclass this type extends */ get superClass(): string; /** * Verify if the type is extends OR implements the given type */ isSubtypeOf(type: string): boolean; } /** * Root node that represents the application */ export declare class App extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get files(): FileJp[]; get folder(): string; get manifest(): AndroidManifest; showAST(Title: string): string; mapVersions(name: string, keyType: string, interfaceType: InterfaceType, methodName: string): Class; newClass(name: string, extend: string, implement: string[]): Class; newClass(name: string): Class; newInterface(name: string, extend: string[]): InterfaceType; newInterface(name: string): InterfaceType; } export declare class Catch extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get body(): Body; } export declare class Declaration extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get completeType(): string; get init(): Expression; set init(value: Expression); get isArray(): boolean; get isPrimitive(): boolean; get name(): string; get type(): string; get typeReference(): TypeReference; setInit(value: Expression): void; } export declare class Executable extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get body(): Body; get name(): string; set name(value: string); get params(): Declaration[]; get returnRef(): TypeReference; get returnType(): string; /** * Sets the name of this executable, returns the previous name */ setName(name: string): string; } export declare class Expression extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get kind(): string; get qualifiedType(): string; get test(): number; set test(value: Expression | number); get type(): string; get typeReference(): TypeReference; extract(varName: string, location: Statement, position: string): void; setTest(test: Expression): void; setTest(test: number): void; } export declare class Field extends Declaration { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get declarator(): string; get staticAccess(): string; } /** * Represents a source-code file */ export declare class FileJp extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get dir(): string; /** * Main class of the file. Java files must have a top level class with the same name as the file. */ get mainClass(): Type; get name(): string; get numClasses(): number; get numInterfaces(): number; get packageName(): string; get path(): string; /** * Insert a given class inside the target */ addClass(newClass: Class): void; addImport(qualifiedName: string): void; addInterface(newInterface: InterfaceType): void; mapVersions(name: string, keyType: string, interfaceType: InterfaceType, methodName: string): Class; newClass(name: string, extend: string, implement: string[]): Class; newClass(name: string): Class; newInterface(name: string, extend: string[]): InterfaceType; newInterface(name: string): InterfaceType; removeInterface(interfaceName: string): InterfaceType; } /** * Class that is part of a library, included in the classpath */ export declare class LibClass extends NamedType { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Method of a class that is part of a library included in the classpath */ export declare class LibMethod extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get declarator(): NamedType; /** * The simple name of the type */ get name(): string; get returnType(): string; } export declare class Literal extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get value(): string; set value(value: string); setValue(value: string): void; } export declare class Method extends Executable { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get declarator(): string; get privacy(): string; set privacy(value: string); get toQualifiedReference(): string; get toReference(): string; isOverriding(method: Method): boolean; addComment(comment: string): void; addParameter(type: string, name: string): void; clone(newName: string): Method; createAdapter(adaptMethod: Method, name: string): Class; setPrivacy(privacy: string): void; } export declare class New extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get arguments(): Expression[]; set arguments(value: Expression[]); get name(): string; setArguments(newArguments: Expression[]): void; } /** * Points to a named program element reference */ export declare class Reference extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * The element that is being referenced */ get declaration(): Joinpoint; /** * Name of the element of the reference */ get name(): string; /** * Type of the element of the reference */ get type(): string; } export declare class SnippetExpr extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; setLine(line: number): void; setLine(value: number): void; setLine(value: string): void; } 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 endLine(): number; get kind(): string; } export declare class Switch extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get cases(): Case[]; } export declare class Ternary extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * Alias for attribute 'condition' */ get cond(): Expression; /** * The condition of the ternary expression */ get condition(): Expression; get else(): Expression; get then(): Expression; } export declare class This extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class Throw extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class Try extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get body(): Body; get catches(): Catch[]; } /** * Base join point that class, interface and enum extend */ export declare class Type extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * List of names of interfaces that this class implements */ get interfaces(): string[]; /** * Returns the interface join points that this class implements */ get interfacesTypes(): InterfaceType[]; get javadoc(): string; /** * The simple name of the class */ get name(): string; /** * Package name of this class */ get packageName(): string; /** * The qualified name of this class, includes packages */ get qualifiedName(): string; /** * Name of the superclass this class extends */ get superClass(): string; /** * The superclass this class extends, or undefined if the class extends java.lang.Object */ get superClassJp(): TypeReference; /** * Verify if the type is extends OR implements the given type */ isSubtypeOf(type: string): boolean; /** * Insert a given class inside the target */ addClass(newClass: Class): void; addImplement(interfaceType: InterfaceType): void; addInterface(newInterface: InterfaceType): void; insertCode(code: string): void; insertMethod(code: string): void; newField(modifiers: string[], type: string, name: string, defaultValue?: string): Field; newField(modifiers: string[], type: string, name: string): Field; /** * Add a new method inside the class */ newMethod(modifiers: string[], returnType: string, name: string, paramLeft: string[], paramRight: string[], code: string): Method; /** * Overload which accepts 4 parameters (code is empty string) */ newMethod(modifiers: string[], returnType: string, name: string, paramLeft: string[], paramRight: string[]): Method; removeInterface(interfaceName: string): InterfaceType; } /** * Reference to a type */ export declare class TypeReference extends Reference { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * True if this is a reference to an array type, false otherwise */ get isArray(): boolean; /** * True if this is a reference to a boolean type, primitive or class (i.e., boolean, Boolean) */ get isBoolean(): boolean; /** * True if this is a reference to a numeric type, primitive or class (i.e., byte, Byte, char, Character, short, Short, int, Integer, long, Long, float, Float, double and Double) */ get isNumeric(): boolean; /** * True if this is a reference to a primitive type, false otherwise */ get isPrimitive(): boolean; /** * Package name of this type */ get packageName(): string; /** * The package name of this type as an array, where each element is a part of the package */ get packageNames(): string[]; /** * Fully qualified name of the type */ get qualifiedName(): string; } export declare class UnaryExpression extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get operand(): Expression; get operator(): string; set operator(value: string); /** * Sets the operator of the unary expression. To distinguish between postfix and prefix operator, add an underscore signalling the place of the variable (e.g., _++ for postfix incremment). If no underscore is specified, postfix is assumed. */ setOperator(operator: string): void; } export declare class Var extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get declaration(): Joinpoint; /** * Equivalent to the global attribute 'isInsideLoopHeader' */ get inLoopHeader(): boolean; get isArray(): boolean; get isField(): boolean; get isPrimitive(): boolean; get name(): string; get reference(): RefType; /** * The chain of references of this variable (e.g., this.field) */ get referenceChain(): Joinpoint[]; } export declare class XmlNode extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get elements(): XmlElement[]; get text(): string; set text(value: string); elementsByName(name: string): XmlElement[]; setText(text: string): string; } export declare class AndroidManifest extends XmlNode { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get asJson(): string; } export declare class Annotation extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class AnonymousExec extends Executable { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class ArrayAccess extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get reference(): RefType; } export declare class Assert extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class Assignment extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get lhs(): Expression; set lhs(value: Expression); get operator(): string; get rhs(): Expression; set rhs(value: Expression); setLhs(lhs: Expression): void; setRhs(rhs: Expression): void; } export declare class BinaryExpression extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get lhs(): Expression; get operands(): Expression[]; get operator(): string; set operator(value: string); get rhs(): Expression; setOperator(operator: string): void; } export declare class Body extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * The last statement of the body, or undefined if it has no statements */ get lastStmt(): Statement; insertBegin(code: string): void; insertBegin(statement: Statement): void; } export declare class Break extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class Call extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get arguments(): Expression[]; set arguments(value: Expression[]); get decl(): Method; get declarator(): string; get executable(): string; set executable(value: Method); get name(): string; get qualifiedDecl(): string; get returnType(): string; get returnTypeJp(): TypeReference; get simpleDecl(): string; get target(): string; set target(value: Expression | string); get targetType(): Type; clone(location: Statement, position: string): Call; setArgument(newArgument: Expression, index: number): void; setArguments(newArguments: Expression[]): void; setExecutable(executable: Method): Call; setTarget(target?: Expression): Call; setTarget(target?: string): Call; } export declare class CallStatement extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get call(): Call; } export declare class Case extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * The expression associated with this case, of undefined if it is the default case */ get expr(): Expression; /** * True if this is the default case, false otherwise */ get isDefault(): boolean; /** * The statements of this case */ get stmts(): Statement[]; } /** * Join point representation of a class */ export declare class Class extends Type { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get isTopLevel(): boolean; extractInterface(name: string, packageName: string, method: Method, associate: boolean | undefined, newFile: boolean): InterfaceType; insertStatic(code: string): void; mapVersions(name: string, keyType: string, interfaceType: InterfaceType, methodName: string): Class; newConstructor(modifiers?: string[], paramLeft?: string[], paramRight?: string[]): Constructor; newFunctionalClass(interfaceMethod: Method, generatorMethod: Method): Method; } export declare class Comment extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get content(): string; get type(): CommentType; } export declare class Constructor extends Executable { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get declarator(): string; } export declare class Continue extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class Enum extends Class { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class EnumValue extends Field { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class FieldAccess extends Var { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * The base expression of this fieldAccess. E.g., for the field access a.b.c, returns the expression representing a.b */ get base(): Expression; } export declare class If extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get cond(): Expression; get else(): Body; get rank(): string; get then(): Body; } export declare class InterfaceType extends Type { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class LocalVariable extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get completeType(): string; /** * Initialization of this variable, if present, or undefined of unintialized */ get init(): Expression; /** * Initialization of this variable, if present, or undefined of unintialized */ set init(value: Expression); get isArray(): boolean; get isPrimitive(): boolean; get name(): string; get type(): string; get typeReference(): TypeReference; setInit(init: Expression): void; } export declare class Loop extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get cond(): Expression; get controlVar(): string; get isInnermost(): boolean; get isOutermost(): boolean; get nestedLevel(): number; get rank(): string; get type(): LoopType; interchange(loop2: Loop): void; tile(tileName: string, block: string, unique: boolean, around?: Joinpoint): Field; tile(block: number): void; } export declare class OpAssignment extends Assignment { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; setOperator(operator: string): void; } export declare class Pragma extends Comment { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get name(): string; } export declare class Return extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } export declare class SnippetStmt extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; setLine(line: number): void; setLine(value: number): void; setLine(value: string): void; } export declare class XmlElement extends XmlNode { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * A list of available attributes in this element */ get attributeNames(): string[]; /** * The name (i.e., tag) of this element */ get name(): string; /** * The value associated with the given attribute */ attribute(name: string): string; setAttribute(name: string, value: string): string; } export declare enum LoopType { DOWHILE = "dowhile", FOR = "for", FOREACH = "foreach", WHILE = "while" } export declare enum CommentType { BLOCK = "block", FILE = "file", INLINE = "inline", JAVADOC = "javadoc", PRAGMA = "pragma" } export declare enum RefType { DECL = "decl", READ = "read", READWRITE = "readwrite", WRITE = "write" } declare const JoinpointMapper: { joinpoint: typeof Joinpoint; NamedType: typeof NamedType; app: typeof App; catch: typeof Catch; declaration: typeof Declaration; executable: typeof Executable; expression: typeof Expression; field: typeof Field; file: typeof FileJp; libClass: typeof LibClass; libMethod: typeof LibMethod; literal: typeof Literal; method: typeof Method; new: typeof New; reference: typeof Reference; snippetExpr: typeof SnippetExpr; statement: typeof Statement; switch: typeof Switch; ternary: typeof Ternary; this: typeof This; throw: typeof Throw; try: typeof Try; type: typeof Type; typeReference: typeof TypeReference; unaryExpression: typeof UnaryExpression; var: typeof Var; xmlNode: typeof XmlNode; androidManifest: typeof AndroidManifest; annotation: typeof Annotation; anonymousExec: typeof AnonymousExec; arrayAccess: typeof ArrayAccess; assert: typeof Assert; assignment: typeof Assignment; binaryExpression: typeof BinaryExpression; body: typeof Body; break: typeof Break; call: typeof Call; callStatement: typeof CallStatement; case: typeof Case; class: typeof Class; comment: typeof Comment; constructor: typeof Constructor; continue: typeof Continue; enum: typeof Enum; enumValue: typeof EnumValue; fieldAccess: typeof FieldAccess; if: typeof If; interfaceType: typeof InterfaceType; localVariable: typeof LocalVariable; loop: typeof Loop; opAssignment: typeof OpAssignment; pragma: typeof Pragma; return: typeof Return; snippetStmt: typeof SnippetStmt; xmlElement: typeof XmlElement; }; export {}; //# sourceMappingURL=Joinpoints.d.ts.map