test cartridge for lua and js
This commit is contained in:
parent
51ecdeeb5c
commit
06c8e95cc9
@ -57,7 +57,7 @@ cargo build
|
|||||||
To run an example cartridge:
|
To run an example cartridge:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./target/debug/prometeu run test-cartridges/color-square
|
./target/debug/prometeu run test-cartridges/color-square-ts
|
||||||
```
|
```
|
||||||
|
|
||||||
For more details on how to use the CLI, see the **[prometeu](./crates/prometeu)** README.
|
For more details on how to use the CLI, see the **[prometeu](./crates/prometeu)** README.
|
||||||
|
|||||||
@ -1,3 +1,12 @@
|
|||||||
|
//! # Bytecode Emitter
|
||||||
|
//!
|
||||||
|
//! This module is responsible for the final stage of the compilation process:
|
||||||
|
//! converting the Intermediate Representation (IR) into the binary Prometeu ByteCode (PBC) format.
|
||||||
|
//!
|
||||||
|
//! It performs two main tasks:
|
||||||
|
//! 1. **Instruction Lowering**: Translates `ir::Instruction` into `prometeu_bytecode::asm::Asm` ops.
|
||||||
|
//! 2. **Symbol Mapping**: Associates bytecode offsets (Program Counter) with source code locations.
|
||||||
|
|
||||||
use crate::common::files::FileManager;
|
use crate::common::files::FileManager;
|
||||||
use crate::common::symbols::Symbol;
|
use crate::common::symbols::Symbol;
|
||||||
use crate::ir;
|
use crate::ir;
|
||||||
@ -7,29 +16,38 @@ use prometeu_bytecode::asm::{assemble, update_pc_by_operand, Asm, Operand};
|
|||||||
use prometeu_bytecode::opcode::OpCode;
|
use prometeu_bytecode::opcode::OpCode;
|
||||||
use prometeu_bytecode::pbc::{write_pbc, ConstantPoolEntry, PbcFile};
|
use prometeu_bytecode::pbc::{write_pbc, ConstantPoolEntry, PbcFile};
|
||||||
|
|
||||||
|
/// The final output of the code generation phase.
|
||||||
pub struct EmitResult {
|
pub struct EmitResult {
|
||||||
|
/// The serialized binary data of the PBC file.
|
||||||
pub rom: Vec<u8>,
|
pub rom: Vec<u8>,
|
||||||
|
/// Metadata mapping bytecode offsets to source code positions.
|
||||||
pub symbols: Vec<Symbol>,
|
pub symbols: Vec<Symbol>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Entry point for emitting a bytecode module from the IR.
|
||||||
pub fn emit_module(module: &ir::Module, file_manager: &FileManager) -> Result<EmitResult> {
|
pub fn emit_module(module: &ir::Module, file_manager: &FileManager) -> Result<EmitResult> {
|
||||||
let mut emitter = BytecodeEmitter::new(file_manager);
|
let mut emitter = BytecodeEmitter::new(file_manager);
|
||||||
emitter.emit(module)
|
emitter.emit(module)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Internal helper for managing the bytecode emission state.
|
||||||
struct BytecodeEmitter<'a> {
|
struct BytecodeEmitter<'a> {
|
||||||
|
/// Stores constant values (like strings) that are referenced by instructions.
|
||||||
constant_pool: Vec<ConstantPoolEntry>,
|
constant_pool: Vec<ConstantPoolEntry>,
|
||||||
|
/// Used to look up source code positions for symbol generation.
|
||||||
file_manager: &'a FileManager,
|
file_manager: &'a FileManager,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> BytecodeEmitter<'a> {
|
impl<'a> BytecodeEmitter<'a> {
|
||||||
fn new(file_manager: &'a FileManager) -> Self {
|
fn new(file_manager: &'a FileManager) -> Self {
|
||||||
Self {
|
Self {
|
||||||
|
// Index 0 is traditionally reserved for Null in many VMs
|
||||||
constant_pool: vec![ConstantPoolEntry::Null],
|
constant_pool: vec![ConstantPoolEntry::Null],
|
||||||
file_manager,
|
file_manager,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Adds a value to the constant pool if it doesn't exist, returning its unique index.
|
||||||
fn add_constant(&mut self, entry: ConstantPoolEntry) -> u32 {
|
fn add_constant(&mut self, entry: ConstantPoolEntry) -> u32 {
|
||||||
if let Some(pos) = self.constant_pool.iter().position(|e| e == &entry) {
|
if let Some(pos) = self.constant_pool.iter().position(|e| e == &entry) {
|
||||||
pos as u32
|
pos as u32
|
||||||
@ -40,16 +58,22 @@ impl<'a> BytecodeEmitter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Transforms an IR module into a binary PBC file.
|
||||||
fn emit(&mut self, module: &ir::Module) -> Result<EmitResult> {
|
fn emit(&mut self, module: &ir::Module) -> Result<EmitResult> {
|
||||||
let mut asm_instrs = Vec::new();
|
let mut asm_instrs = Vec::new();
|
||||||
let mut ir_instr_map = Vec::new(); // Maps Asm index to IR instruction (for symbols)
|
let mut ir_instr_map = Vec::new(); // Maps Asm index to IR instruction (for symbols)
|
||||||
|
|
||||||
|
// --- PHASE 1: Lowering IR to Assembly-like structures ---
|
||||||
for function in &module.functions {
|
for function in &module.functions {
|
||||||
|
// Each function starts with a label for its entry point.
|
||||||
asm_instrs.push(Asm::Label(function.name.clone()));
|
asm_instrs.push(Asm::Label(function.name.clone()));
|
||||||
ir_instr_map.push(None);
|
ir_instr_map.push(None);
|
||||||
|
|
||||||
for instr in &function.body {
|
for instr in &function.body {
|
||||||
let start_idx = asm_instrs.len();
|
let start_idx = asm_instrs.len();
|
||||||
|
|
||||||
|
// Translate each IR instruction to its equivalent Bytecode OpCode.
|
||||||
|
// Note: IR instructions are high-level, while Bytecode is low-level.
|
||||||
match &instr.kind {
|
match &instr.kind {
|
||||||
InstrKind::Nop => asm_instrs.push(Asm::Op(OpCode::Nop, vec![])),
|
InstrKind::Nop => asm_instrs.push(Asm::Op(OpCode::Nop, vec![])),
|
||||||
InstrKind::Halt => asm_instrs.push(Asm::Op(OpCode::Halt, vec![])),
|
InstrKind::Halt => asm_instrs.push(Asm::Op(OpCode::Halt, vec![])),
|
||||||
@ -63,6 +87,7 @@ impl<'a> BytecodeEmitter<'a> {
|
|||||||
asm_instrs.push(Asm::Op(OpCode::PushBool, vec![Operand::Bool(*v)]));
|
asm_instrs.push(Asm::Op(OpCode::PushBool, vec![Operand::Bool(*v)]));
|
||||||
}
|
}
|
||||||
InstrKind::PushString(s) => {
|
InstrKind::PushString(s) => {
|
||||||
|
// Strings are stored in the constant pool.
|
||||||
let id = self.add_constant(ConstantPoolEntry::String(s.clone()));
|
let id = self.add_constant(ConstantPoolEntry::String(s.clone()));
|
||||||
asm_instrs.push(Asm::Op(OpCode::PushConst, vec![Operand::U32(id)]));
|
asm_instrs.push(Asm::Op(OpCode::PushConst, vec![Operand::U32(id)]));
|
||||||
}
|
}
|
||||||
@ -131,9 +156,12 @@ impl<'a> BytecodeEmitter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- PHASE 2: Assembly (Label Resolution) ---
|
||||||
|
// Converts the list of Ops and Labels into raw bytes, calculating jump offsets.
|
||||||
let bytecode = assemble(&asm_instrs).map_err(|e| anyhow!(e))?;
|
let bytecode = assemble(&asm_instrs).map_err(|e| anyhow!(e))?;
|
||||||
|
|
||||||
// Resolve symbols
|
// --- PHASE 3: Symbol Generation ---
|
||||||
|
// Associates each bytecode offset with a line/column in the source file.
|
||||||
let mut symbols = Vec::new();
|
let mut symbols = Vec::new();
|
||||||
let mut current_pc = 0u32;
|
let mut current_pc = 0u32;
|
||||||
for (i, asm) in asm_instrs.iter().enumerate() {
|
for (i, asm) in asm_instrs.iter().enumerate() {
|
||||||
@ -153,15 +181,20 @@ impl<'a> BytecodeEmitter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Track the Program Counter (PC) as we iterate through instructions.
|
||||||
match asm {
|
match asm {
|
||||||
Asm::Label(_) => {}
|
Asm::Label(_) => {}
|
||||||
Asm::Op(_opcode, operands) => {
|
Asm::Op(_opcode, operands) => {
|
||||||
|
// Each OpCode takes 2 bytes (1 for opcode, 1 for padding/metadata)
|
||||||
current_pc += 2;
|
current_pc += 2;
|
||||||
|
// Operands take additional space depending on their type.
|
||||||
current_pc = update_pc_by_operand(current_pc, operands);
|
current_pc = update_pc_by_operand(current_pc, operands);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- PHASE 4: Serialization ---
|
||||||
|
// Packages the constant pool and bytecode into the final PBC format.
|
||||||
let pbc = PbcFile {
|
let pbc = PbcFile {
|
||||||
cp: self.constant_pool.clone(),
|
cp: self.constant_pool.clone(),
|
||||||
rom: bytecode,
|
rom: bytecode,
|
||||||
|
|||||||
@ -1,3 +1,8 @@
|
|||||||
|
//! # Compiler Orchestration
|
||||||
|
//!
|
||||||
|
//! This module provides the high-level API for triggering the compilation process.
|
||||||
|
//! It handles the transition between different compiler phases: Frontend -> IR -> Backend.
|
||||||
|
|
||||||
use crate::backend;
|
use crate::backend;
|
||||||
use crate::common::files::FileManager;
|
use crate::common::files::FileManager;
|
||||||
use crate::common::symbols::Symbol;
|
use crate::common::symbols::Symbol;
|
||||||
@ -10,14 +15,22 @@ use std::path::Path;
|
|||||||
/// The result of a successful compilation process.
|
/// The result of a successful compilation process.
|
||||||
/// It contains the final binary and the metadata needed for debugging.
|
/// It contains the final binary and the metadata needed for debugging.
|
||||||
pub struct CompilationUnit {
|
pub struct CompilationUnit {
|
||||||
/// The raw binary data (PBC format).
|
/// The raw binary data formatted as Prometeu ByteCode (PBC).
|
||||||
|
/// This is what gets written to a `.pbc` file.
|
||||||
pub rom: Vec<u8>,
|
pub rom: Vec<u8>,
|
||||||
/// The list of debug symbols for source mapping.
|
|
||||||
|
/// The list of debug symbols discovered during compilation.
|
||||||
|
/// These are used to map bytecode offsets back to source code locations.
|
||||||
pub symbols: Vec<Symbol>,
|
pub symbols: Vec<Symbol>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CompilationUnit {
|
impl CompilationUnit {
|
||||||
/// Writes the compilation results to the disk.
|
/// Writes the compilation results (PBC binary, disassembly, and symbols) to the disk.
|
||||||
|
///
|
||||||
|
/// # Arguments
|
||||||
|
/// * `out` - The base path for the output `.pbc` file.
|
||||||
|
/// * `emit_disasm` - If true, a `.disasm` file will be created next to the output.
|
||||||
|
/// * `emit_symbols` - If true, a `.json` symbols file will be created next to the output.
|
||||||
pub fn export(&self, out: &Path, emit_disasm: bool, emit_symbols: bool) -> Result<()> {
|
pub fn export(&self, out: &Path, emit_disasm: bool, emit_symbols: bool) -> Result<()> {
|
||||||
let artifacts = backend::artifacts::Artifacts::new(self.rom.clone(), self.symbols.clone());
|
let artifacts = backend::artifacts::Artifacts::new(self.rom.clone(), self.symbols.clone());
|
||||||
artifacts.export(out, emit_disasm, emit_symbols)
|
artifacts.export(out, emit_disasm, emit_symbols)
|
||||||
@ -25,21 +38,45 @@ impl CompilationUnit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Orchestrates the compilation of a Prometeu project starting from an entry file.
|
/// Orchestrates the compilation of a Prometeu project starting from an entry file.
|
||||||
|
///
|
||||||
|
/// This function executes the full compiler pipeline:
|
||||||
|
/// 1. **Frontend**: Loads and parses the entry file (and its dependencies).
|
||||||
|
/// Currently, it uses the `TypescriptFrontend`.
|
||||||
|
/// 2. **IR Generation**: The frontend produces a high-level Intermediate Representation (IR).
|
||||||
|
/// 3. **Validation**: Checks the IR for consistency and VM compatibility.
|
||||||
|
/// 4. **Backend**: Lowers the IR into final Prometeu ByteCode.
|
||||||
|
///
|
||||||
|
/// # Errors
|
||||||
|
/// Returns an error if parsing fails, validation finds issues, or code generation fails.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
/// ```no_run
|
||||||
|
/// use std::path::Path;
|
||||||
|
/// let entry = Path::new("src/main.ts");
|
||||||
|
/// let unit = prometeu_compiler::compiler::compile(entry).expect("Failed to compile");
|
||||||
|
/// unit.export(Path::new("build/program.pbc"), true, true).unwrap();
|
||||||
|
/// ```
|
||||||
pub fn compile(entry: &Path) -> Result<CompilationUnit> {
|
pub fn compile(entry: &Path) -> Result<CompilationUnit> {
|
||||||
let mut file_manager = FileManager::new();
|
let mut file_manager = FileManager::new();
|
||||||
|
|
||||||
// 1. Select Frontend (Currently only TS is supported)
|
// 1. Select Frontend (Currently only TS is supported)
|
||||||
|
// The frontend is responsible for parsing source code and producing the IR.
|
||||||
let frontend = TypescriptFrontend;
|
let frontend = TypescriptFrontend;
|
||||||
|
|
||||||
// 2. Compile to IR
|
// 2. Compile to IR (Intermediate Representation)
|
||||||
|
// This step abstracts away source-specific syntax (like TypeScript) into a
|
||||||
|
// generic set of instructions that the backend can understand.
|
||||||
let ir_module = frontend.compile_to_ir(entry, &mut file_manager)
|
let ir_module = frontend.compile_to_ir(entry, &mut file_manager)
|
||||||
.map_err(|bundle| anyhow::anyhow!("Compilation failed with {} errors", bundle.diagnostics.len()))?;
|
.map_err(|bundle| anyhow::anyhow!("Compilation failed with {} errors", bundle.diagnostics.len()))?;
|
||||||
|
|
||||||
// 3. IR Validation
|
// 3. IR Validation
|
||||||
|
// Ensures the generated IR is sound and doesn't violate any VM constraints
|
||||||
|
// before we spend time generating bytecode.
|
||||||
ir::validate::validate_module(&ir_module)
|
ir::validate::validate_module(&ir_module)
|
||||||
.map_err(|bundle| anyhow::anyhow!("IR Validation failed: {:?}", bundle))?;
|
.map_err(|bundle| anyhow::anyhow!("IR Validation failed: {:?}", bundle))?;
|
||||||
|
|
||||||
// 4. Emit Bytecode
|
// 4. Emit Bytecode
|
||||||
|
// The backend takes the validated IR and produces the final binary executable.
|
||||||
let result = backend::emit_module(&ir_module, &file_manager)?;
|
let result = backend::emit_module(&ir_module, &file_manager)?;
|
||||||
|
|
||||||
Ok(CompilationUnit {
|
Ok(CompilationUnit {
|
||||||
|
|||||||
@ -1,3 +1,12 @@
|
|||||||
|
//! # TypeScript Frontend
|
||||||
|
//!
|
||||||
|
//! This module implements the TypeScript/JavaScript frontend for the Prometeu Compiler.
|
||||||
|
//! It is responsible for:
|
||||||
|
//! 1. Parsing `.ts` files into an Abstract Syntax Tree (AST).
|
||||||
|
//! 2. Resolving imports and building a dependency graph.
|
||||||
|
//! 3. Validating that the source code uses only supported VM features.
|
||||||
|
//! 4. Lowering the high-level AST into the generic Intermediate Representation (IR).
|
||||||
|
|
||||||
pub mod parse;
|
pub mod parse;
|
||||||
pub mod resolve;
|
pub mod resolve;
|
||||||
pub mod validate;
|
pub mod validate;
|
||||||
@ -14,6 +23,7 @@ use std::collections::{HashMap, VecDeque};
|
|||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
/// The main entry point for the TypeScript compiler frontend.
|
||||||
pub struct TypescriptFrontend;
|
pub struct TypescriptFrontend;
|
||||||
|
|
||||||
impl Frontend for TypescriptFrontend {
|
impl Frontend for TypescriptFrontend {
|
||||||
@ -21,6 +31,21 @@ impl Frontend for TypescriptFrontend {
|
|||||||
"typescript"
|
"typescript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Compiles a TypeScript entry file (and all its dependencies) into an IR Module.
|
||||||
|
///
|
||||||
|
/// # The Compilation Pipeline:
|
||||||
|
///
|
||||||
|
/// 1. **Discovery & Parsing**:
|
||||||
|
/// Starting from the `entry` file, it reads, parses, and discovers imports recursively.
|
||||||
|
/// It uses the `oxc` parser for high-performance AST generation.
|
||||||
|
///
|
||||||
|
/// 2. **Semantic Validation**:
|
||||||
|
/// Each parsed module is checked against the `Validator`. Since Prometeu is a
|
||||||
|
/// specialized VM, it doesn't support the full range of TS/JS features (e.g., no `try/catch` yet).
|
||||||
|
///
|
||||||
|
/// 3. **IR Lowering**:
|
||||||
|
/// Once all modules are parsed and validated, the `ToIR` engine traverses the ASTs
|
||||||
|
/// and emits equivalent IR instructions.
|
||||||
fn compile_to_ir(
|
fn compile_to_ir(
|
||||||
&self,
|
&self,
|
||||||
entry: &Path,
|
entry: &Path,
|
||||||
@ -35,6 +60,7 @@ impl Frontend for TypescriptFrontend {
|
|||||||
queue.push_back(entry_abs.clone());
|
queue.push_back(entry_abs.clone());
|
||||||
|
|
||||||
// --- PHASE 1: Dependency Resolution and Parsing ---
|
// --- PHASE 1: Dependency Resolution and Parsing ---
|
||||||
|
// We traverse the dependency graph breadth-first to ensure all files are loaded.
|
||||||
while let Some(path) = queue.pop_front() {
|
while let Some(path) = queue.pop_front() {
|
||||||
let path_str: String = path.to_string_lossy().into_owned();
|
let path_str: String = path.to_string_lossy().into_owned();
|
||||||
if modules.contains_key(&path_str) {
|
if modules.contains_key(&path_str) {
|
||||||
@ -45,12 +71,14 @@ impl Frontend for TypescriptFrontend {
|
|||||||
let file_id = file_manager.add(path.clone(), source_text.clone());
|
let file_id = file_manager.add(path.clone(), source_text.clone());
|
||||||
let source_text_ptr = allocator.alloc_str(&source_text);
|
let source_text_ptr = allocator.alloc_str(&source_text);
|
||||||
|
|
||||||
|
// Parse the source into an AST
|
||||||
let program = parse::parse_file(&allocator, &path).map_err(|e| DiagnosticBundle::error(format!("Failed to parse module: {}", e), None))?;
|
let program = parse::parse_file(&allocator, &path).map_err(|e| DiagnosticBundle::error(format!("Failed to parse module: {}", e), None))?;
|
||||||
|
|
||||||
// --- PHASE 2: Individual Module Validation ---
|
// --- PHASE 2: Individual Module Validation ---
|
||||||
|
// Ensure the code adheres to Prometeu's restricted subset of TypeScript.
|
||||||
validate::Validator::validate(&program).map_err(|e| DiagnosticBundle::error(format!("Validation error: {}", e), None))?;
|
validate::Validator::validate(&program).map_err(|e| DiagnosticBundle::error(format!("Validation error: {}", e), None))?;
|
||||||
|
|
||||||
// Discover new imports
|
// Discover new imports and add them to the queue
|
||||||
for item in &program.body {
|
for item in &program.body {
|
||||||
if let oxc_ast::ast::Statement::ImportDeclaration(decl) = item {
|
if let oxc_ast::ast::Statement::ImportDeclaration(decl) = item {
|
||||||
let import_path = decl.source.value.as_str();
|
let import_path = decl.source.value.as_str();
|
||||||
@ -63,6 +91,7 @@ impl Frontend for TypescriptFrontend {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --- PHASE 3: To IR ---
|
// --- PHASE 3: To IR ---
|
||||||
|
// Collect all parsed modules and feed them into the IR generator.
|
||||||
let entry_str = entry_abs.to_string_lossy().to_string();
|
let entry_str = entry_abs.to_string_lossy().to_string();
|
||||||
let mut program_list = Vec::new();
|
let mut program_list = Vec::new();
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,34 @@
|
|||||||
|
//! # To IR Lowering
|
||||||
|
//!
|
||||||
|
//! This module implements the core translation logic from the TypeScript AST (Abstract Syntax Tree)
|
||||||
|
//! into the Prometeu Intermediate Representation (IR).
|
||||||
|
//!
|
||||||
|
//! ## How it works:
|
||||||
|
//!
|
||||||
|
//! The `ToIR` engine traverses the AST and for each node (expression, statement, etc.),
|
||||||
|
//! it emits equivalent stack-based IR instructions.
|
||||||
|
//!
|
||||||
|
//! ### Symbol Resolution
|
||||||
|
//! It maintains a scoped symbol table to track local variables and their assigned slots.
|
||||||
|
//! It also manages global variables, which are mapped to permanent memory slots in the VM.
|
||||||
|
//!
|
||||||
|
//! ### Control Flow
|
||||||
|
//! High-level control flow (like `if`, `while`, `for`) is lowered into jumps and labels.
|
||||||
|
//! Unique labels are generated for each branch to avoid collisions.
|
||||||
|
//!
|
||||||
|
//! ### Example Translation:
|
||||||
|
//! **TS Source:**
|
||||||
|
//! ```typescript
|
||||||
|
//! let x = 10 + 20;
|
||||||
|
//! ```
|
||||||
|
//! **Generated IR:**
|
||||||
|
//! ```text
|
||||||
|
//! PushInt(10)
|
||||||
|
//! PushInt(20)
|
||||||
|
//! Add
|
||||||
|
//! SetLocal(0)
|
||||||
|
//! ```
|
||||||
|
|
||||||
use crate::frontends::ts::syscall_map;
|
use crate::frontends::ts::syscall_map;
|
||||||
use crate::common::spans::Span as IRSpan;
|
use crate::common::spans::Span as IRSpan;
|
||||||
use crate::frontends::ts::ast_util;
|
use crate::frontends::ts::ast_util;
|
||||||
@ -14,11 +45,15 @@ use prometeu_core::model::Color;
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
/// Helper to count local variables and hoisted functions in a function body.
|
/// Helper to count local variables and hoisted functions in a function body.
|
||||||
|
///
|
||||||
|
/// This is used to determine how many slots need to be reserved on the stack frame
|
||||||
|
/// before executing a function.
|
||||||
struct LocalCounter {
|
struct LocalCounter {
|
||||||
count: u32,
|
count: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Visit<'a> for LocalCounter {
|
impl<'a> Visit<'a> for LocalCounter {
|
||||||
|
/// Discovers function declarations which also occupy a slot in the current frame.
|
||||||
fn visit_statement(&mut self, stmt: &Statement<'a>) {
|
fn visit_statement(&mut self, stmt: &Statement<'a>) {
|
||||||
match stmt {
|
match stmt {
|
||||||
Statement::FunctionDeclaration(f) => {
|
Statement::FunctionDeclaration(f) => {
|
||||||
@ -28,6 +63,7 @@ impl<'a> Visit<'a> for LocalCounter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Discovers variable declarations (let/const/var) and increments the local count.
|
||||||
fn visit_variable_declaration(&mut self, decl: &VariableDeclaration<'a>) {
|
fn visit_variable_declaration(&mut self, decl: &VariableDeclaration<'a>) {
|
||||||
self.count += decl.declarations.len() as u32;
|
self.count += decl.declarations.len() as u32;
|
||||||
walk::walk_variable_declaration(self, decl);
|
walk::walk_variable_declaration(self, decl);
|
||||||
@ -43,8 +79,11 @@ impl<'a> Visit<'a> for LocalCounter {
|
|||||||
|
|
||||||
/// Metadata for a symbol (variable or function) in the symbol table.
|
/// Metadata for a symbol (variable or function) in the symbol table.
|
||||||
struct SymbolEntry {
|
struct SymbolEntry {
|
||||||
|
/// The unique index assigned to this variable in the current frame or global memory.
|
||||||
slot_index: u32,
|
slot_index: u32,
|
||||||
|
/// Whether the variable was declared with `const`.
|
||||||
is_const: bool,
|
is_const: bool,
|
||||||
|
/// Tracks if the variable has been assigned a value (used for Temporal Dead Zone checks).
|
||||||
is_initialized: bool,
|
is_initialized: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,12 +98,13 @@ pub struct ToIR {
|
|||||||
/// The stream of generated IR instructions.
|
/// The stream of generated IR instructions.
|
||||||
pub instructions: Vec<ir::Instruction>,
|
pub instructions: Vec<ir::Instruction>,
|
||||||
/// Scoped symbol table. Each element is a scope level containing a map of symbols.
|
/// Scoped symbol table. Each element is a scope level containing a map of symbols.
|
||||||
|
/// This allows for variable shadowing and block scope resolution.
|
||||||
symbol_table: Vec<HashMap<String, SymbolEntry>>,
|
symbol_table: Vec<HashMap<String, SymbolEntry>>,
|
||||||
/// Current depth of the scope (0 is global/function top-level).
|
/// Current depth of the scope (0 is global/function top-level).
|
||||||
scope_depth: usize,
|
scope_depth: usize,
|
||||||
/// Mapping of global variable names to their slots in the VM's global memory.
|
/// Mapping of global variable names to their slots in the VM's global memory.
|
||||||
globals: HashMap<String, u32>,
|
globals: HashMap<String, u32>,
|
||||||
/// Counter for the next available local variable ID.
|
/// Counter for the next available local variable ID in the current function.
|
||||||
next_local: u32,
|
next_local: u32,
|
||||||
/// Counter for the next available global variable ID.
|
/// Counter for the next available global variable ID.
|
||||||
next_global: u32,
|
next_global: u32,
|
||||||
|
|||||||
@ -1,78 +1,147 @@
|
|||||||
|
//! # IR Instructions
|
||||||
|
//!
|
||||||
|
//! This module defines the set of instructions used in the Intermediate Representation (IR).
|
||||||
|
//! These instructions are designed to be easy to generate from a high-level AST and
|
||||||
|
//! easy to lower into VM-specific bytecode.
|
||||||
|
|
||||||
use crate::common::spans::Span;
|
use crate::common::spans::Span;
|
||||||
|
|
||||||
|
/// An `Instruction` combines an instruction's behavior (`kind`) with its
|
||||||
|
/// source code location (`span`) for debugging and error reporting.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Instruction {
|
pub struct Instruction {
|
||||||
pub kind: InstrKind,
|
pub kind: InstrKind,
|
||||||
|
/// The location in the original source code that generated this instruction.
|
||||||
pub span: Option<Span>,
|
pub span: Option<Span>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Instruction {
|
impl Instruction {
|
||||||
|
/// Creates a new instruction with an optional source span.
|
||||||
pub fn new(kind: InstrKind, span: Option<Span>) -> Self {
|
pub fn new(kind: InstrKind, span: Option<Span>) -> Self {
|
||||||
Self { kind, span }
|
Self { kind, span }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A `Label` represents a destination for a jump instruction.
|
||||||
|
/// During the assembly phase, labels are resolved into actual memory offsets.
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
pub struct Label(pub String);
|
pub struct Label(pub String);
|
||||||
|
|
||||||
|
/// The various types of operations that can be performed in the IR.
|
||||||
|
///
|
||||||
|
/// The IR uses a stack-based model, similar to the final Prometeu ByteCode.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum InstrKind {
|
pub enum InstrKind {
|
||||||
|
/// Does nothing.
|
||||||
Nop,
|
Nop,
|
||||||
|
/// Terminates program execution.
|
||||||
Halt,
|
Halt,
|
||||||
|
|
||||||
// Literals
|
// --- Literals ---
|
||||||
|
// These instructions push a constant value onto the stack.
|
||||||
|
|
||||||
|
/// Pushes a 64-bit integer onto the stack.
|
||||||
PushInt(i64),
|
PushInt(i64),
|
||||||
|
/// Pushes a 64-bit float onto the stack.
|
||||||
PushFloat(f64),
|
PushFloat(f64),
|
||||||
|
/// Pushes a boolean onto the stack.
|
||||||
PushBool(bool),
|
PushBool(bool),
|
||||||
|
/// Pushes a string literal onto the stack.
|
||||||
PushString(String),
|
PushString(String),
|
||||||
|
/// Pushes a `null` value onto the stack.
|
||||||
PushNull,
|
PushNull,
|
||||||
|
|
||||||
// Stack Ops
|
// --- Stack Operations ---
|
||||||
|
|
||||||
|
/// Removes the top value from the stack.
|
||||||
Pop,
|
Pop,
|
||||||
|
/// Duplicates the top value on the stack.
|
||||||
Dup,
|
Dup,
|
||||||
|
/// Swaps the top two values on the stack.
|
||||||
Swap,
|
Swap,
|
||||||
|
|
||||||
// Arithmetic
|
// --- Arithmetic ---
|
||||||
|
// These take two values from the stack and push the result.
|
||||||
|
|
||||||
|
/// Addition: `a + b`
|
||||||
Add,
|
Add,
|
||||||
|
/// Subtraction: `a - b`
|
||||||
Sub,
|
Sub,
|
||||||
|
/// Multiplication: `a * b`
|
||||||
Mul,
|
Mul,
|
||||||
|
/// Division: `a / b`
|
||||||
Div,
|
Div,
|
||||||
|
/// Negation: `-a` (takes one value)
|
||||||
Neg,
|
Neg,
|
||||||
|
|
||||||
// Logical/Comparison
|
// --- Logical/Comparison ---
|
||||||
|
|
||||||
|
/// Equality: `a == b`
|
||||||
Eq,
|
Eq,
|
||||||
|
/// Inequality: `a != b`
|
||||||
Neq,
|
Neq,
|
||||||
|
/// Less than: `a < b`
|
||||||
Lt,
|
Lt,
|
||||||
|
/// Greater than: `a > b`
|
||||||
Gt,
|
Gt,
|
||||||
|
/// Less than or equal: `a <= b`
|
||||||
Lte,
|
Lte,
|
||||||
|
/// Greater than or equal: `a >= b`
|
||||||
Gte,
|
Gte,
|
||||||
|
/// Logical AND: `a && b`
|
||||||
And,
|
And,
|
||||||
|
/// Logical OR: `a || b`
|
||||||
Or,
|
Or,
|
||||||
|
/// Logical NOT: `!a`
|
||||||
Not,
|
Not,
|
||||||
|
|
||||||
// Bitwise
|
// --- Bitwise Operations ---
|
||||||
|
|
||||||
|
/// Bitwise AND: `a & b`
|
||||||
BitAnd,
|
BitAnd,
|
||||||
|
/// Bitwise OR: `a | b`
|
||||||
BitOr,
|
BitOr,
|
||||||
|
/// Bitwise XOR: `a ^ b`
|
||||||
BitXor,
|
BitXor,
|
||||||
|
/// Shift Left: `a << b`
|
||||||
Shl,
|
Shl,
|
||||||
|
/// Shift Right: `a >> b`
|
||||||
Shr,
|
Shr,
|
||||||
|
|
||||||
// Variables
|
// --- Variable Access ---
|
||||||
|
|
||||||
|
/// Retrieves a value from a local variable slot and pushes it onto the stack.
|
||||||
GetLocal(u32),
|
GetLocal(u32),
|
||||||
|
/// Pops a value from the stack and stores it in a local variable slot.
|
||||||
SetLocal(u32),
|
SetLocal(u32),
|
||||||
|
/// Retrieves a value from a global variable slot and pushes it onto the stack.
|
||||||
GetGlobal(u32),
|
GetGlobal(u32),
|
||||||
|
/// Pops a value from the stack and stores it in a global variable slot.
|
||||||
SetGlobal(u32),
|
SetGlobal(u32),
|
||||||
|
|
||||||
// Control Flow
|
// --- Control Flow ---
|
||||||
|
|
||||||
|
/// Unconditionally jumps to the specified label.
|
||||||
Jmp(Label),
|
Jmp(Label),
|
||||||
|
/// Pops a boolean from the stack. If false, jumps to the specified label.
|
||||||
JmpIfFalse(Label),
|
JmpIfFalse(Label),
|
||||||
|
/// Defines a location that can be jumped to. Does not emit code by itself.
|
||||||
Label(Label),
|
Label(Label),
|
||||||
|
/// Calls a function by name with the specified number of arguments.
|
||||||
|
/// Arguments should be pushed onto the stack before calling.
|
||||||
Call { name: String, arg_count: u32 },
|
Call { name: String, arg_count: u32 },
|
||||||
|
/// Returns from the current function. The return value (if any) should be on top of the stack.
|
||||||
Ret,
|
Ret,
|
||||||
|
|
||||||
// OS / System
|
// --- OS / System ---
|
||||||
|
|
||||||
|
/// Triggers a system call (e.g., drawing to the screen, reading input).
|
||||||
Syscall(u32),
|
Syscall(u32),
|
||||||
|
/// Special instruction to synchronize with the hardware frame clock.
|
||||||
FrameSync,
|
FrameSync,
|
||||||
|
|
||||||
|
/// Internal: Pushes a new lexical scope (used for variable resolution).
|
||||||
PushScope,
|
PushScope,
|
||||||
|
/// Internal: Pops the current lexical scope.
|
||||||
PopScope,
|
PopScope,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,35 +1,62 @@
|
|||||||
|
//! # IR Module Structure
|
||||||
|
//!
|
||||||
|
//! This module defines the structure of the Intermediate Representation (IR).
|
||||||
|
//! The IR is a higher-level representation of the program than bytecode, but lower
|
||||||
|
//! than the source code AST. It is organized into Modules, Functions, and Globals.
|
||||||
|
|
||||||
use crate::ir::instr::Instruction;
|
use crate::ir::instr::Instruction;
|
||||||
use crate::ir::types::Type;
|
use crate::ir::types::Type;
|
||||||
|
|
||||||
|
/// A `Module` is the top-level container for a compiled program or library.
|
||||||
|
/// It contains a collection of global variables and functions.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Module {
|
pub struct Module {
|
||||||
|
/// The name of the module (usually derived from the project name).
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
/// List of all functions defined in this module.
|
||||||
pub functions: Vec<Function>,
|
pub functions: Vec<Function>,
|
||||||
|
/// List of all global variables available in this module.
|
||||||
pub globals: Vec<Global>,
|
pub globals: Vec<Global>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Represents a function in the IR.
|
||||||
|
///
|
||||||
|
/// Functions consist of a signature (name, parameters, return type) and a body
|
||||||
|
/// which is a flat list of IR instructions.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Function {
|
pub struct Function {
|
||||||
|
/// The unique name of the function.
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
/// The list of input parameters.
|
||||||
pub params: Vec<Param>,
|
pub params: Vec<Param>,
|
||||||
|
/// The type of value this function returns.
|
||||||
pub return_type: Type,
|
pub return_type: Type,
|
||||||
|
/// The sequence of instructions that make up the function's logic.
|
||||||
pub body: Vec<Instruction>,
|
pub body: Vec<Instruction>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A parameter passed to a function.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Param {
|
pub struct Param {
|
||||||
|
/// The name of the parameter (useful for debugging and symbols).
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
/// The data type of the parameter.
|
||||||
pub r#type: Type,
|
pub r#type: Type,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A global variable accessible by any function in the module.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Global {
|
pub struct Global {
|
||||||
|
/// The name of the global variable.
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
/// The data type of the variable.
|
||||||
pub r#type: Type,
|
pub r#type: Type,
|
||||||
|
/// The unique memory slot index assigned to this global variable.
|
||||||
pub slot: u32,
|
pub slot: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Module {
|
impl Module {
|
||||||
|
/// Creates a new, empty module with the given name.
|
||||||
pub fn new(name: String) -> Self {
|
pub fn new(name: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
name,
|
name,
|
||||||
|
|||||||
@ -1,19 +1,41 @@
|
|||||||
//! # Prometeu Compiler
|
//! # Prometeu Compiler
|
||||||
//!
|
//!
|
||||||
//! This crate provides the official compiler for the Prometeu ecosystem.
|
//! This crate provides the official compiler for the Prometeu ecosystem.
|
||||||
//! It translates TypeScript/JavaScript source code into Prometeu ByteCode (.pbc).
|
//! It translates high-level source code (primarily TypeScript/JavaScript) into
|
||||||
|
//! Prometeu ByteCode (.pbc), which runs on the Prometeu Virtual Machine.
|
||||||
//!
|
//!
|
||||||
//! ## Workflow:
|
//! ## Architecture Overview:
|
||||||
//! 1. **Parsing**: Uses the `oxc` parser to generate an Abstract Syntax Tree (AST).
|
//!
|
||||||
//! 2. **Validation**: Checks for unsupported features and ensures ABI compliance.
|
//! The compiler follows a multi-stage pipeline:
|
||||||
//! 3. **Codegen**: Traverses the AST and emits `prometeu-bytecode` instructions.
|
//!
|
||||||
//! 4. **Assembly**: Resolves labels and serializes the program into the binary PBC format.
|
//! 1. **Frontend (Parsing & Analysis)**:
|
||||||
|
//! - Uses the `oxc` parser to generate an Abstract Syntax Tree (AST).
|
||||||
|
//! - Performs semantic analysis and validation (e.g., ensuring only supported TS features are used).
|
||||||
|
//! - Lowers the AST into the **Intermediate Representation (IR)**.
|
||||||
|
//! - *Example*: Converting a `a + b` expression into IR instructions like `Push(a)`, `Push(b)`, `Add`.
|
||||||
|
//!
|
||||||
|
//! 2. **IR Optimization (Optional/Planned)**:
|
||||||
|
//! - Simplifies the IR to improve performance or reduce bytecode size.
|
||||||
|
//!
|
||||||
|
//! 3. **Backend (Code Generation)**:
|
||||||
|
//! - **Lowering**: Converts the high-level IR into a flat list of ByteCode instructions.
|
||||||
|
//! - **Assembly**: Resolves branch labels into actual memory offsets.
|
||||||
|
//! - **Serialization**: Encodes the instructions into the binary PBC format.
|
||||||
|
//!
|
||||||
|
//! 4. **Artifact Export**:
|
||||||
|
//! - Generates the `.pbc` binary file.
|
||||||
|
//! - Optionally produces `.disasm` (disassembly for debugging) and `.json` (symbol maps).
|
||||||
|
//!
|
||||||
|
//! ## Example Usage (CLI):
|
||||||
//!
|
//!
|
||||||
//! ## Example Usage:
|
|
||||||
//! ```bash
|
//! ```bash
|
||||||
//! # Build a project
|
//! # Build a project from a directory
|
||||||
//! prometeu-compiler build ./my-game --entry ./src/main.ts --out ./game.pbc
|
//! prometeu-compiler build ./my-game --entry ./src/main.ts --out ./game.pbc
|
||||||
//! ```
|
//! ```
|
||||||
|
//!
|
||||||
|
//! ## Programmatic Entry Point:
|
||||||
|
//!
|
||||||
|
//! See the [`compiler`] module for the main entry point to trigger a compilation programmatically.
|
||||||
|
|
||||||
pub mod common;
|
pub mod common;
|
||||||
pub mod ir;
|
pub mod ir;
|
||||||
|
|||||||
@ -4,7 +4,7 @@ This directory contains example cartridges and test suites to validate the behav
|
|||||||
|
|
||||||
## Available Cartridges
|
## Available Cartridges
|
||||||
|
|
||||||
### 🟩 [color-square](./color-square)
|
### 🟩 [color-square-ts](color-square-ts)
|
||||||
A simple cartridge that demonstrates:
|
A simple cartridge that demonstrates:
|
||||||
- System initialization.
|
- System initialization.
|
||||||
- Rendering a colored square in the framebuffer.
|
- Rendering a colored square in the framebuffer.
|
||||||
|
|||||||
7
test-cartridges/color-square-lua/run.sh
Normal file
7
test-cartridges/color-square-lua/run.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
prometeu build . --lang lua
|
||||||
|
prometeu run cartridge
|
||||||
|
|
||||||
|
echo "Lua project scaffold ok. (Build step depends on Lua frontend in prometeu-compiler)"
|
||||||
16
test-cartridges/color-square-lua/src/main.lua
Normal file
16
test-cartridges/color-square-lua/src/main.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
local my_gfx = require("my_gfx")
|
||||||
|
local my_input = require("my_input")
|
||||||
|
local my_fs = require("my_fs")
|
||||||
|
|
||||||
|
function frame()
|
||||||
|
my_gfx.do_init_gfx()
|
||||||
|
my_input.do_pad()
|
||||||
|
my_input.do_touch()
|
||||||
|
my_fs.do_fs()
|
||||||
|
my_gfx.print_orange()
|
||||||
|
|
||||||
|
do
|
||||||
|
local x = 10
|
||||||
|
gfx.drawText(120, 100, "1. value of " .. x, color.white)
|
||||||
|
end
|
||||||
|
end
|
||||||
15
test-cartridges/color-square-lua/src/my_fs.lua
Normal file
15
test-cartridges/color-square-lua/src/my_fs.lua
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.do_fs()
|
||||||
|
local h = fs.open("test.txt")
|
||||||
|
if h >= 0 then
|
||||||
|
fs.write(h, "Hello Prometeu!")
|
||||||
|
local content = fs.read(h)
|
||||||
|
if content and content ~= "" then
|
||||||
|
log.writeTag(2, 101, content)
|
||||||
|
end
|
||||||
|
fs.close(h)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
17
test-cartridges/color-square-lua/src/my_gfx.lua
Normal file
17
test-cartridges/color-square-lua/src/my_gfx.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.do_init_gfx()
|
||||||
|
gfx.clear(color.indigo)
|
||||||
|
gfx.fillRect(10, 10, 50, 50, color.red)
|
||||||
|
gfx.drawLine(0, 0, 128, 128, color.white)
|
||||||
|
gfx.drawCircle(64, 64, 20, color.blue)
|
||||||
|
gfx.drawDisc(100, 100, 10, color.green, color.yellow)
|
||||||
|
gfx.drawSquare(20, 100, 30, 30, color.cyan, color.color_key)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.print_orange()
|
||||||
|
local c = color.rgb(255, 128, 0)
|
||||||
|
gfx.fillRect(0, 0, 5, 5, c)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
21
test-cartridges/color-square-lua/src/my_input.lua
Normal file
21
test-cartridges/color-square-lua/src/my_input.lua
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.do_pad()
|
||||||
|
if pad.up.down then
|
||||||
|
log.write(2, "Up is down")
|
||||||
|
end
|
||||||
|
|
||||||
|
if pad.a.pressed then
|
||||||
|
audio.play("bgm_music", 0, 0, 128, 127, 1.0, 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.do_touch()
|
||||||
|
gfx.setSprite("mouse_cursor", 0, touch.x, touch.y, 0, 0, true, false, false, 4)
|
||||||
|
|
||||||
|
if touch.button.down then
|
||||||
|
gfx.drawCircle(touch.x, touch.y, 10, color.white)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
BIN
test-cartridges/color-square-ts/cartridge/assets.pa
Normal file
BIN
test-cartridges/color-square-ts/cartridge/assets.pa
Normal file
Binary file not shown.
41
test-cartridges/color-square-ts/cartridge/manifest.json
Normal file
41
test-cartridges/color-square-ts/cartridge/manifest.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"magic": "PMTU",
|
||||||
|
"cartridge_version": 1,
|
||||||
|
"app_id": 1,
|
||||||
|
"title": "Color Square",
|
||||||
|
"app_version": "0.1.0",
|
||||||
|
"app_mode": "Game",
|
||||||
|
"entrypoint": "0",
|
||||||
|
"asset_table": [
|
||||||
|
{
|
||||||
|
"asset_id": 0,
|
||||||
|
"asset_name": "bgm_music",
|
||||||
|
"bank_type": "SOUNDS",
|
||||||
|
"offset": 0,
|
||||||
|
"size": 88200,
|
||||||
|
"decoded_size": 88200,
|
||||||
|
"codec": "RAW",
|
||||||
|
"metadata": {
|
||||||
|
"sample_rate": 44100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"asset_id": 1,
|
||||||
|
"asset_name": "mouse_cursor",
|
||||||
|
"bank_type": "TILES",
|
||||||
|
"offset": 88200,
|
||||||
|
"size": 2304,
|
||||||
|
"decoded_size": 2304,
|
||||||
|
"codec": "RAW",
|
||||||
|
"metadata": {
|
||||||
|
"tile_size": 16,
|
||||||
|
"width": 16,
|
||||||
|
"height": 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preload": [
|
||||||
|
{ "asset_name": "bgm_music", "slot": 0 },
|
||||||
|
{ "asset_name": "mouse_cursor", "slot": 1 }
|
||||||
|
]
|
||||||
|
}
|
||||||
1
test-cartridges/color-square-ts/prometeu-sdk
Symbolic link
1
test-cartridges/color-square-ts/prometeu-sdk
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../dist-staging/stable/prometeu-aarch64-apple-darwin/
|
||||||
@ -1,191 +0,0 @@
|
|||||||
00000000 Call U32(20) U32(0)
|
|
||||||
0000000A Pop
|
|
||||||
0000000C FrameSync
|
|
||||||
0000000E Jmp U32(0)
|
|
||||||
00000014 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000016 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000020 Call U32(497) U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
0000002A Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
0000002C Call U32(174) U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
00000036 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
00000038 Call U32(348) U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
00000042 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
00000044 Call U32(993) U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:9
|
|
||||||
0000004E Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:9
|
|
||||||
00000050 Call U32(817) U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
0000005A Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
0000005C PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:12
|
|
||||||
0000005E PushI64 I64(10) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
00000068 SetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
0000006E PushI64 I64(120) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000078 PushI64 I64(100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000082 PushConst U32(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000088 GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
0000008E Add ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000090 PushI64 I64(65535) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
0000009A Syscall U32(4104) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000000A0 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000000A2 PopScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:12
|
|
||||||
000000A4 PopScope
|
|
||||||
000000A6 PushConst U32(0)
|
|
||||||
000000AC Ret
|
|
||||||
000000AE PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000000B0 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000000BA Syscall U32(8193) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000000C0 JmpIfFalse U32(232) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000000C6 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000C8 PushI64 I64(2) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000D2 PushConst U32(2) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000D8 Syscall U32(20481) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000DE Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000E0 PopScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000000E2 Jmp U32(232)
|
|
||||||
000000E8 PushI64 I64(4) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
000000F2 Syscall U32(8194) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
000000F8 JmpIfFalse U32(338) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
000000FE PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000100 PushConst U32(3) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000106 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000110 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
0000011A PushI64 I64(128) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
00000124 PushI64 I64(127) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
0000012E PushI64 I64(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
00000138 PushI64 I64(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
00000142 Syscall U32(12290) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000148 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
0000014A PopScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
0000014C Jmp U32(338)
|
|
||||||
00000152 PopScope
|
|
||||||
00000154 PushConst U32(0)
|
|
||||||
0000015A Ret
|
|
||||||
0000015C PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
0000015E PushConst U32(4) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:11
|
|
||||||
00000164 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
0000016E Syscall U32(8449) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
00000174 Syscall U32(8450) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
0000017A PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000184 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
0000018E PushBool Bool(true) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000191 PushBool Bool(false) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000194 PushBool Bool(false) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000197 PushI64 I64(4) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000001A1 Syscall U32(4103) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
000001A7 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
000001A9 Syscall U32(8451) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000001AF JmpIfFalse U32(487) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000001B5 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:15
|
|
||||||
000001B7 Syscall U32(8449) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001BD Syscall U32(8450) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001C3 PushI64 I64(10) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001CD PushI64 I64(65535) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001D7 Syscall U32(4100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001DD Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000001DF PopScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:15
|
|
||||||
000001E1 Jmp U32(487)
|
|
||||||
000001E7 PopScope
|
|
||||||
000001E9 PushConst U32(0)
|
|
||||||
000001EF Ret
|
|
||||||
000001F1 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000001F3 PushI64 I64(18448) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000001FD Syscall U32(4097) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
00000203 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
00000205 PushI64 I64(10) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000020F PushI64 I64(10) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000219 PushI64 I64(50) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000223 PushI64 I64(50) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000022D PushI64 I64(63488) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000237 Syscall U32(4098) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000023D Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000023F PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000249 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000253 PushI64 I64(128) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
0000025D PushI64 I64(128) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000267 PushI64 I64(65535) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000271 Syscall U32(4099) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000277 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000279 PushI64 I64(64) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
00000283 PushI64 I64(64) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
0000028D PushI64 I64(20) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
00000297 PushI64 I64(31) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
000002A1 Syscall U32(4100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
000002A7 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
000002A9 PushI64 I64(100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:9
|
|
||||||
000002B3 PushI64 I64(100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
000002BD PushI64 I64(10) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
000002C7 PushI64 I64(2016) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
000002D1 PushI64 I64(65504) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:12
|
|
||||||
000002DB Syscall U32(4101) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
000002E1 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
000002E3 PushI64 I64(20) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000002ED PushI64 I64(100) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
000002F7 PushI64 I64(30) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000301 PushI64 I64(30) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
0000030B PushI64 I64(2047) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
00000315 PushI64 I64(63519) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:14
|
|
||||||
0000031F Syscall U32(4102) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
00000325 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:13
|
|
||||||
00000327 PopScope
|
|
||||||
00000329 PushConst U32(0)
|
|
||||||
0000032F Ret
|
|
||||||
00000331 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:15
|
|
||||||
00000333 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:15
|
|
||||||
0000033D PushI64 I64(255) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000347 PushI64 I64(3) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000351 Shr ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000353 PushI64 I64(11) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
0000035D Shl ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
0000035F PushI64 I64(128) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000369 PushI64 I64(2) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000373 Shr ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000375 PushI64 I64(5) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
0000037F Shl ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000381 BitOr ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000383 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
0000038D PushI64 I64(3) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000397 Shr ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
00000399 BitOr ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
0000039B SetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003A1 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003AB PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003B5 PushI64 I64(5) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003BF PushI64 I64(5) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003C9 GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003CF Syscall U32(4098) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003D5 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:16
|
|
||||||
000003D7 PopScope
|
|
||||||
000003D9 PushConst U32(0)
|
|
||||||
000003DF Ret
|
|
||||||
000003E1 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000003E3 PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000003ED PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
000003F7 PushConst U32(5) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
000003FD Syscall U32(16385) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000403 SetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:1
|
|
||||||
00000409 GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000040F PushI64 I64(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000419 Gte ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000041B JmpIfFalse U32(1171) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000421 PushScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
00000423 GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000429 PushConst U32(6) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
0000042F Syscall U32(16387) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000435 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:3
|
|
||||||
00000437 GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
0000043D Syscall U32(16386) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:6
|
|
||||||
00000443 SetLocal U32(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:5
|
|
||||||
00000449 GetLocal U32(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
0000044F JmpIfFalse U32(1149) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:7
|
|
||||||
00000455 PushI64 I64(2) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
0000045F PushI64 I64(101) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:9
|
|
||||||
00000469 GetLocal U32(1) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:9
|
|
||||||
0000046F Syscall U32(20482) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
00000475 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:8
|
|
||||||
00000477 Jmp U32(1149)
|
|
||||||
0000047D GetLocal U32(0) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
00000483 Syscall U32(16388) ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
00000489 Pop ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:10
|
|
||||||
0000048B PopScope ; /Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts:2
|
|
||||||
0000048D Jmp U32(1171)
|
|
||||||
00000493 PopScope
|
|
||||||
00000495 PushConst U32(0)
|
|
||||||
0000049B Ret
|
|
||||||
@ -1,986 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"pc": 20,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 22,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 32,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 42,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 44,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 54,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 56,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 66,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 68,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 9,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 78,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 9,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 80,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 90,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 92,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 12,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 94,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 19
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 104,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 110,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 22
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 120,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 27
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 130,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 32
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 136,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 49
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 142,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 32
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 144,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 52
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 154,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 160,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 162,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 12,
|
|
||||||
"col": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 174,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 176,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 42
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 186,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 42
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 192,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 38
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 198,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 200,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 23
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 210,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 26
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 216,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 13
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 222,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 13
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 224,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 232,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 242,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 248,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 254,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 26
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 256,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 262,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 28
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 272,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 31
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 282,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 292,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 302,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 312,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 17
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 322,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 328,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 330,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 26
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 348,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 350,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 11,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 356,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 366,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 13
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 372,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 22
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 378,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 388,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 398,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 401,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 21
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 404,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 28
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 407,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 35
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 417,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 423,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 425,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 47
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 431,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 43
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 437,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 15,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 439,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 445,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 451,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 461,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 471,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 477,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 479,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 15,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 497,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 499,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 509,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 43
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 515,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 43
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 517,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 33
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 527,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 37
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 537,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 41
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 547,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 45
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 557,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 567,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 573,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 575,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 585,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 595,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 605,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 615,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 17
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 625,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 631,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 633,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 18
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 643,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 653,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 663,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 673,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 679,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 681,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 9,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 691,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 701,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 711,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 721,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 12,
|
|
||||||
"col": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 731,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 737,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 739,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 749,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 759,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 19
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 769,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 23
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 779,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 27
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 789,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 14,
|
|
||||||
"col": 39
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 799,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 17
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 805,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 13,
|
|
||||||
"col": 17
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 817,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 15,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 819,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 15,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 829,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 839,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 849,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 851,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 861,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 863,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 873,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 883,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 885,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 895,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 897,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 899,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 909,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 919,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 921,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 923,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 929,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 939,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 949,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 959,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 969,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 975,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 981,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 16,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 993,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 995,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1005,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1015,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1021,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1027,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 1,
|
|
||||||
"col": 41
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1033,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 30
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1039,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 35
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1049,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 30
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1051,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 26
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1057,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 38
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1059,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1065,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1071,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1077,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 3,
|
|
||||||
"col": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1079,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1085,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 6,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1091,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 5,
|
|
||||||
"col": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1097,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1103,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 7,
|
|
||||||
"col": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1109,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1119,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 9,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1129,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 9,
|
|
||||||
"col": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1135,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1141,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 8,
|
|
||||||
"col": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1149,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1155,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1161,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 10,
|
|
||||||
"col": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pc": 1163,
|
|
||||||
"file": "/Users/niltonconstantino/personal/workspace.personal/intrepid/prometeu/runtime/test-cartridges/color-square/src/main.ts",
|
|
||||||
"line": 2,
|
|
||||||
"col": 38
|
|
||||||
}
|
|
||||||
]
|
|
||||||
Binary file not shown.
1510
test-cartridges/color-square/node_modules/.package-lock.json
generated
vendored
1510
test-cartridges/color-square/node_modules/.package-lock.json
generated
vendored
File diff suppressed because it is too large
Load Diff
1
test-cartridges/color-square/node_modules/@prometeu/sdk
generated
vendored
1
test-cartridges/color-square/node_modules/@prometeu/sdk
generated
vendored
@ -1 +0,0 @@
|
|||||||
../../prometeu-sdk/typescript-sdk
|
|
||||||
Loading…
x
Reference in New Issue
Block a user