Got things compiling again
But this is a bad design for the DebugAsk
This commit is contained in:
parent
e3bd108e6c
commit
6d3f5f4b81
@ -94,17 +94,17 @@ impl Schala {
|
||||
use DebugAsk::*;
|
||||
match request {
|
||||
Timing => DebugResponse { ask: Timing, value: format!("Invalid") },
|
||||
ByStage { stage_name } => match &stage_name[..] {
|
||||
ByStage { stage_name, token } => match &stage_name[..] {
|
||||
"symbol-table" => {
|
||||
let value = self.symbol_table.borrow().debug_symbol_table();
|
||||
DebugResponse {
|
||||
ask: ByStage { stage_name: format!("symbol-table") },
|
||||
ask: ByStage { stage_name: format!("symbol-table"), token },
|
||||
value
|
||||
}
|
||||
},
|
||||
s => {
|
||||
DebugResponse {
|
||||
ask: ByStage { stage_name: s.to_string() },
|
||||
ask: ByStage { stage_name: s.to_string(), token: None },
|
||||
value: format!("Not-implemented")
|
||||
}
|
||||
}
|
||||
@ -277,7 +277,7 @@ impl ProgrammingLanguageInterface for Schala {
|
||||
where F: Fn(Input, &mut Schala, Option<&mut PassDebugArtifact>) -> Result<Output, String>
|
||||
{
|
||||
let stage_names = stage_names();
|
||||
let ask = DebugAsk::ByStage { stage_name: stage_names[n].to_string() };
|
||||
let ask = DebugAsk::ByStage { stage_name: stage_names[n].to_string(), token: None };
|
||||
let mut debug_artifact = tok.debug_requests.get(&ask).map(|_|
|
||||
PassDebugArtifact {
|
||||
parsing: if stage_names[n] == "parsing" { Some(ParsingDebugType::CompactAST) } else { None },
|
||||
|
@ -56,8 +56,10 @@ impl DirectiveAction {
|
||||
let meta_response = cur_state.request_meta(meta);
|
||||
|
||||
let response = match meta_response {
|
||||
LangMetaResponse::ImmediateDebug(DebugResponse { ask: DebugAsk::ByStage { stage_name: this_stage_name, .. }, value }) if this_stage_name == stage_name =>
|
||||
value,
|
||||
LangMetaResponse::ImmediateDebug(DebugResponse { ask, value }) => match ask {
|
||||
DebugAsk::ByStage { stage_name: ref this_stage_name, ref token } if *this_stage_name == stage_name => value,
|
||||
_ => return Some(format!("Wrong debug stage"))
|
||||
},
|
||||
_ => return Some(format!("Invalid language meta response")),
|
||||
};
|
||||
Some(response)
|
||||
|
Loading…
Reference in New Issue
Block a user