Variables globales (déclaration, affectation avec une expression et évaluation)
This commit is contained in:
10
src/main.rs
10
src/main.rs
@@ -2,7 +2,6 @@ use std::{env, fs, io};
|
||||
use std::io::Write;
|
||||
use std::process;
|
||||
use crate::astprinter::ASTPrinter;
|
||||
use crate::expr::ExprVisitor;
|
||||
use crate::interpreter::Interpreter;
|
||||
use crate::parser::Parser;
|
||||
|
||||
@@ -14,15 +13,16 @@ mod expr;
|
||||
mod astprinter;
|
||||
mod parser;
|
||||
mod stmt;
|
||||
mod environment;
|
||||
|
||||
use crate::scanner::Scanner;
|
||||
use crate::stmt::{Statement, StatementVisitor};
|
||||
|
||||
// Exit codes from #include <sysexits.h>
|
||||
const EX_OK: i32 = 0;
|
||||
const EX_DATAERR: i32 = 65;
|
||||
//const EX_DATAERR: i32 = 65;
|
||||
const EX_USAGE : i32 = 66;
|
||||
const EX_EXECERR: i32 = 70;
|
||||
//const EX_EXECERR: i32 = 70;
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
@@ -81,15 +81,17 @@ fn run(src: String) -> i32 {
|
||||
match s {
|
||||
Statement::Expression(e) => { printer.visit_expr_stmt(&e) }
|
||||
Statement::Print(p) => { printer.visit_print(&p) }
|
||||
Statement::Var(v) => { printer.visit_var_stmt(&v) }
|
||||
}
|
||||
}
|
||||
|
||||
println!("Interpretation");
|
||||
let mut interpreter = Interpreter;
|
||||
let mut interpreter = Interpreter::new();
|
||||
for s in program {
|
||||
match s {
|
||||
Statement::Expression(e) => { interpreter.visit_expr_stmt(&e) }
|
||||
Statement::Print(p) => { interpreter.visit_print(&p) }
|
||||
Statement::Var(v) => { interpreter.visit_var_stmt(&v) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user