import { MEMORY_SLOT, TOKEN, AST, DECLARATION_TYPES, LOOKUP_ASN, BINARY_ASN, END_ASN, EXCEPTION_ASN, NULL_ASN, UNARY_ASN, SWITCH_ASN, CONSTANT_CONTENT, HEX_CONTENT } from '../typings/syntaxTypes'; type OBJECT_ASN_TYPE = T extends 'binaryASN' ? BINARY_ASN : T extends 'unaryASN' ? UNARY_ASN : T extends 'nullASN' ? NULL_ASN : T extends 'endASN' ? END_ASN : T extends 'lookupASN' ? LOOKUP_ASN : T extends 'exceptionASN' ? EXCEPTION_ASN : T extends 'switchASN' ? SWITCH_ASN : never; /** * Simple functions that do not depend external variables. */ declare const _default: { /** Creates a constant Memory Object */ createConstantMemObj(value?: number | bigint | string): MEMORY_SLOT; /** Creates a constant Memory Object with a given declaration */ createConstantMemObjWithDeclaration(input: CONSTANT_CONTENT): MEMORY_SLOT; /** Creates a constant Memory Object */ createVoidMemObj(): MEMORY_SLOT; genMulToken(line?: string): TOKEN; genDivToken(line?: string): TOKEN; genAddToken(line?: string): TOKEN; genSubToken(line?: string): TOKEN; genAssignmentToken(line: string): TOKEN; genIncToken(): TOKEN; genDecToken(): TOKEN; genNotEqualToken(): TOKEN; genAPICallToken(line: string, name?: string): TOKEN; genBuiltInToken(line: string, name?: string): TOKEN; genPushToken(line: string): TOKEN; memoryToConstantContent(MemObj: MEMORY_SLOT): CONSTANT_CONTENT; mulConstants(param1: CONSTANT_CONTENT, param2: CONSTANT_CONTENT): CONSTANT_CONTENT; divConstants(param1: CONSTANT_CONTENT, param2: CONSTANT_CONTENT): CONSTANT_CONTENT; addHexSimple(param1?: HEX_CONTENT, param2?: HEX_CONTENT): string; addConstants(param1: CONSTANT_CONTENT, param2: CONSTANT_CONTENT): CONSTANT_CONTENT; subConstants(param1: CONSTANT_CONTENT, param2: CONSTANT_CONTENT): { value: bigint; declaration: "long" | "fixed"; }; /** Converts a hex string or number to bigint NO FIXED NUMBER! */ HexContentToBigint(arg: HEX_CONTENT | undefined): bigint; /** Splits an AST into array of AST based on delimiters */ splitASTOnDelimiters(Obj: AST): AST[]; /** * Checks declaration types and return true if operation is not allowed. * @param desiredDeclaration Should be this type * @param MemoObj Object to test * @returns return true if operation is NOT allowed. */ isNotValidDeclarationOp(desiredDeclaration: DECLARATION_TYPES, MemoObj: MEMORY_SLOT): boolean; getDeclarationFromMemory(MemoObj: MEMORY_SLOT): DECLARATION_TYPES; setMemoryDeclaration(MemoObj: MEMORY_SLOT, dec: DECLARATION_TYPES): void; /** Traverse an AST searching a variable name. In this case is the * right side of an assignment. If variable 'name' is found, it * can not be reused as temporary var (register) */ findVarNameInAst(vname: string, ObjAST: AST): boolean; assertAsnType(templateType: T, testObject: AST): OBJECT_ASN_TYPE; }; export default _default;