in progress

This commit is contained in:
evan-schott 2024-03-28 14:33:16 -07:00
parent a37c36ac12
commit 22d1c402d4
3 changed files with 18 additions and 5 deletions

View File

@ -113,6 +113,9 @@ fn run_test(test: Test, handler: &Handler, buf: &BufferEmitter) -> Result<Value,
// Compile each program string separately.
for program_string in program_strings {
println!("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\n\n");
println!("{}", program_string.to_string());
// Parse the program name from the program string.
let re = Regex::new(r"program\s+([^\s.]+)\.aleo").unwrap();
let program_name = re.captures(program_string).unwrap().get(1).unwrap().as_str();
@ -129,6 +132,8 @@ fn run_test(test: Test, handler: &Handler, buf: &BufferEmitter) -> Result<Value,
// Compile the program to bytecode.
let program_name = parsed.program_name.to_string();
let bytecode = handler.extend_if_error(compile_and_process(&mut parsed))?;
dbg!(bytecode.clone());
// Parse the bytecode as an Aleo program.
// Note that this function checks that the bytecode is well-formed.

View File

@ -36,10 +36,18 @@ impl ParserContext<'_> {
Token::Program => {
match parsed_program_scope {
// Only one program scope is allowed per file.
true => return Err(ParserError::only_one_program_scope_is_allowed(self.token.span).into()),
true => {
println!("here!!!!\n");
dbg!(self.prev_token.token.clone());
dbg!(self.token.token.clone());
return Err(ParserError::only_one_program_scope_is_allowed(self.token.span).into())
},
false => {
parsed_program_scope = true;
let program_scope = self.parse_program_scope()?;
println!("XXX\n\n");
dbg!(program_scope.program_id.name.name);
println!("XXX\n\n");
program_scopes.insert(program_scope.program_id.name.name, program_scope);
}
}

View File

@ -1,6 +1,6 @@
/*
namespace: Compile
expectation: Pass
expectation: Fail
*/
program registry.aleo {
@ -15,14 +15,14 @@ program registry.aleo {
}
// --- Next Program --- //
import registry.aleo;
program relay.aleo {
mapping users: address => bool;
function send(addr: address) {
transition send(addr: address) {
return then finalize(addr);
}
finalize send(addr: address) {
let a:bool = Mapping::get(relay.aleo/users, r0);
let a:bool = Mapping::get(relay.aleo/users, addr);
}
}