Remove Unimplemented from Reduced IR
This commit is contained in:
parent
81859306b3
commit
7c5a08664a
@ -108,7 +108,6 @@ impl<'a> Reducer<'a> {
|
|||||||
|
|
||||||
fn expression(&mut self, expr: &ast::Expression) -> Expression {
|
fn expression(&mut self, expr: &ast::Expression) -> Expression {
|
||||||
use crate::ast::ExpressionKind::*;
|
use crate::ast::ExpressionKind::*;
|
||||||
use Expression::{Unimplemented};
|
|
||||||
|
|
||||||
match &expr.kind {
|
match &expr.kind {
|
||||||
NatLiteral(n) => Expression::Literal(Literal::Nat(*n)),
|
NatLiteral(n) => Expression::Literal(Literal::Nat(*n)),
|
||||||
@ -133,11 +132,11 @@ impl<'a> Reducer<'a> {
|
|||||||
body: self.function(body),
|
body: self.function(body),
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
NamedStruct { name, fields } => Unimplemented, //self.reduce_named_struct(name, fields),
|
NamedStruct { name, fields } => Expression::ReductionError("NamedStruct not implemented".to_string()), //self.reduce_named_struct(name, fields),
|
||||||
Index { .. } => Unimplemented,
|
Index { .. } => Expression::ReductionError("Index expr not implemented".to_string()),
|
||||||
WhileExpression { .. } => Unimplemented,
|
WhileExpression { .. } => Expression::ReductionError("While expr not implemented".to_string()),
|
||||||
ForExpression { .. } => Unimplemented,
|
ForExpression { .. } => Expression::ReductionError("For expr not implemented".to_string()),
|
||||||
ListLiteral { .. } => Unimplemented,
|
ListLiteral { .. } => Expression::ReductionError("ListLiteral expr not implemented".to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,7 +168,7 @@ impl<'a> Reducer<'a> {
|
|||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
//TODO need this for custom prefix ops
|
//TODO need this for custom prefix ops
|
||||||
Expression::Unimplemented
|
Expression::ReductionError("User-defined prefix ops not supported".to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -203,7 +202,7 @@ impl<'a> Reducer<'a> {
|
|||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
//TODO handle a user-defined operation
|
//TODO handle a user-defined operation
|
||||||
Unimplemented
|
ReductionError("User-defined operations not supported".to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -224,7 +223,7 @@ impl<'a> Reducer<'a> {
|
|||||||
LocalVariable => Expression::Lookup { id: def_id.clone(), kind: Lookup::LocalVar },
|
LocalVariable => Expression::Lookup { id: def_id.clone(), kind: Lookup::LocalVar },
|
||||||
FunctionParam(n) => Expression::Lookup { id: def_id.clone(), kind: Lookup::Param(*n) },
|
FunctionParam(n) => Expression::Lookup { id: def_id.clone(), kind: Lookup::Param(*n) },
|
||||||
DataConstructor { index, arity, .. } => {
|
DataConstructor { index, arity, .. } => {
|
||||||
Expression::Unimplemented
|
Expression::ReductionError("DataConstructor not supported".to_string())
|
||||||
},
|
},
|
||||||
RecordConstructor { .. } => {
|
RecordConstructor { .. } => {
|
||||||
Expression::ReductionError(format!("The symbol for value {:?} is unexpectdly a RecordConstructor", qualified_name))
|
Expression::ReductionError(format!("The symbol for value {:?} is unexpectdly a RecordConstructor", qualified_name))
|
||||||
|
@ -62,7 +62,6 @@ pub enum Expression {
|
|||||||
f: Box<Expression>,
|
f: Box<Expression>,
|
||||||
args: Vec<Expression>
|
args: Vec<Expression>
|
||||||
},
|
},
|
||||||
Unimplemented,
|
|
||||||
ReductionError(String),
|
ReductionError(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use stopwatch::Stopwatch;
|
use stopwatch::Stopwatch;
|
||||||
|
|
||||||
use crate::error::SchalaError;
|
use crate::error::SchalaError;
|
||||||
use crate::{eval, parsing, reduced_ast, reduced_ir, tree_walk_eval, symbol_table, tokenizing, typechecking};
|
use crate::{eval, parsing, reduced_ir, tree_walk_eval, symbol_table, tokenizing, typechecking};
|
||||||
use schala_repl::{
|
use schala_repl::{
|
||||||
ComputationRequest, ComputationResponse, GlobalOutputStats, LangMetaRequest, LangMetaResponse,
|
ComputationRequest, ComputationResponse, GlobalOutputStats, LangMetaRequest, LangMetaResponse,
|
||||||
ProgrammingLanguageInterface,
|
ProgrammingLanguageInterface,
|
||||||
|
Loading…
Reference in New Issue
Block a user