UNPKG

ton-assembly

Version:

TON assembler and disassembler

148 lines 4.65 kB
export declare namespace $ast { type SourceFile = { readonly $: "SourceFile"; readonly include: IncludeDirective | undefined; readonly program: Program; }; type IncludeDirective = { readonly $: "IncludeDirective"; readonly path: string; }; type Program = { readonly $: "Program"; readonly declarations: readonly Declaration[]; readonly definitions: readonly Definition[]; }; type Declaration = { readonly $: "Declaration"; readonly decl: ProcDeclaration | MethodDeclaration | GlobalVar; }; type ProcDeclaration = { readonly $: "ProcDeclaration"; readonly name: Identifier; }; type MethodDeclaration = { readonly $: "MethodDeclaration"; readonly method_id: Integer; readonly name: Identifier; }; type GlobalVar = { readonly $: "GlobalVar"; readonly name: Identifier; }; type Definition = { readonly $: "Definition"; readonly def: ProcDefinition | ProcInlineDefinition | ProcRefDefinition | MethodDefinition; }; type ProcDefinition = { readonly $: "ProcDefinition"; readonly name: Identifier; readonly instructions: readonly Instruction[]; }; type ProcInlineDefinition = { readonly $: "ProcInlineDefinition"; readonly name: Identifier; readonly instructions: readonly Instruction[]; }; type ProcRefDefinition = { readonly $: "ProcRefDefinition"; readonly name: Identifier; readonly instructions: readonly Instruction[]; }; type MethodDefinition = { readonly $: "MethodDefinition"; readonly name: Identifier; readonly instructions: readonly Instruction[]; }; type Instruction = { readonly $: "Instruction"; readonly instr: IfStatement | IfjmpStatement | WhileStatement | RepeatStatement | UntilStatement | AsmExpression; }; type AsmExpression = { readonly $: "AsmExpression"; readonly arguments: AsmArgumentList | undefined; readonly name: TvmInstruction; }; type AsmArgumentList = { readonly $: "AsmArgumentList"; readonly primitives: readonly AsmPrimitive[]; }; type AsmPrimitive = { readonly $: "AsmPrimitive"; readonly prim: InstructionBlock | String | HexBitString | BinBitString | BocHex | StackRegister | ControlRegister | Integer | ArgIdentifier | FiftAddressNone; }; type IfStatement = { readonly $: "IfStatement"; readonly kind: "IF:<{" | "IFNOT:<{"; readonly instructions: readonly Instruction[]; readonly else_block: { readonly instructions: readonly Instruction[]; } | undefined; }; type IfjmpStatement = { readonly $: "IfjmpStatement"; readonly kind: "IFJMP:<{" | "IFNOTJMP:<{"; readonly instructions: readonly Instruction[]; }; type WhileStatement = { readonly $: "WhileStatement"; readonly condition: readonly Instruction[]; readonly body: readonly Instruction[]; }; type RepeatStatement = { readonly $: "RepeatStatement"; readonly instructions: readonly Instruction[]; }; type UntilStatement = { readonly $: "UntilStatement"; readonly instructions: readonly Instruction[]; }; type InstructionBlock = { readonly $: "InstructionBlock"; readonly instructions: readonly Instruction[]; }; type HexBitString = { readonly $: "HexBitString"; readonly content: string; }; type BinBitString = { readonly $: "BinBitString"; readonly content: string; }; type FiftAddressNone = { readonly $: "FiftAddressNone"; }; type BocHex = { readonly $: "BocHex"; readonly content: string; }; type Identifier = { readonly $: "Identifier"; readonly name: string; }; type ArgIdentifier = { readonly $: "ArgIdentifier"; readonly name: string; }; type TvmInstruction = { readonly $: "TvmInstruction"; readonly value: string; }; type Integer = { readonly $: "Integer"; readonly value: string; }; type StackRegister = { readonly $: "StackRegister"; readonly value: string; }; type ControlRegister = { readonly $: "ControlRegister"; readonly value: string; }; type String = { readonly $: "String"; readonly content: string; }; } //# sourceMappingURL=grammar.d.ts.map