feat(rt_interp): enable file locations for include
This commit is contained in:
@@ -1,40 +1,4 @@
|
||||
(set 'red
|
||||
(material
|
||||
(color 1 0 0)
|
||||
(color 1 0 0)
|
||||
(color 0.5 0 0)
|
||||
50 0.25))
|
||||
(set 'blue
|
||||
(material
|
||||
(color 0 0 1)
|
||||
(color 0 0 1)
|
||||
(color 0 0 0.6)
|
||||
50 0.25))
|
||||
(set 'green
|
||||
(material
|
||||
(color 0 1 0)
|
||||
(color 0 1 0)
|
||||
(color 0 0.6 0)
|
||||
50 0.25))
|
||||
(set 'white
|
||||
(material
|
||||
(color 1 1 1)
|
||||
(color 1 1 1)
|
||||
(color 0.6 0.6 0.6)
|
||||
100 0.5))
|
||||
(set 'black
|
||||
(material
|
||||
(color 0 0 0)
|
||||
(color 0 0 0)
|
||||
(color 0.6 0.6 0.6)
|
||||
100 0.5))
|
||||
|
||||
(set 'dark-mirror
|
||||
(material
|
||||
(color 0 0 0)
|
||||
(color 0 0 0)
|
||||
(color 0.2 0.2 0.2)
|
||||
20 0.6))
|
||||
(include "./materials.lisp")
|
||||
|
||||
(set 's1
|
||||
(sphere
|
||||
|
||||
@@ -17,20 +17,27 @@ fn main() {
|
||||
mk_prelude(&mut layer);
|
||||
mk_raytrace(&mut layer);
|
||||
|
||||
let environment = Environment::from_layer(layer);
|
||||
let mut environment = Environment::from_layer(layer);
|
||||
|
||||
for (i, r) in
|
||||
ExpressionStream::from_char_stream(programs.iter().map(|p| p.chars()).flatten()).enumerate()
|
||||
{
|
||||
match r {
|
||||
Err(err) => {
|
||||
println!("ParserError in Expression {}: {:?}", i + 1, err);
|
||||
break;
|
||||
for (program, path) in programs.iter().zip(program_paths) {
|
||||
environment.set("FILE".to_string(), path.clone().into());
|
||||
|
||||
for (i, r) in ExpressionStream::from_char_stream(program.chars()).enumerate() {
|
||||
match r {
|
||||
Err(err) => {
|
||||
println!(
|
||||
"ParserError in File {} Expression {}: {:?}",
|
||||
path,
|
||||
i + 1,
|
||||
err
|
||||
);
|
||||
break;
|
||||
}
|
||||
Ok(expr) => match eval(&environment, expr) {
|
||||
Ok(_) => {}
|
||||
Err(e) => println!("Error evaluating Expression {}: {}", i + 1, e),
|
||||
},
|
||||
}
|
||||
Ok(expr) => match eval(&environment, expr) {
|
||||
Ok(_) => {}
|
||||
Err(e) => println!("Error evaluating Expression {}: {}", i + 1, e),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user