Fixed warnings

This commit is contained in:
Kyler Olsen 2025-12-02 11:52:20 -07:00
parent 6f4be5a929
commit 081930e6f5
6 changed files with 51 additions and 52 deletions

View File

@ -0,0 +1,5 @@
use crate::interpreter::InterpreterState;
pub fn load_builtins(_state: &mut InterpreterState) -> bool {
false
}

View File

@ -14,7 +14,7 @@ pub fn exec_file(interpreter: &mut InterpreterState, filename: &str) -> bool {
} }
}; };
let mut lexer_info = LexerInfo::new(filename.clone(), source.clone()); let mut lexer_info = LexerInfo::new(filename, source.clone());
let result = lexical_analysis(&mut lexer_info); let result = lexical_analysis(&mut lexer_info);
@ -40,6 +40,9 @@ pub fn run_file(filename: &str) -> i32 {
println!("Executing file: {}", filename); println!("Executing file: {}", filename);
let mut interpreter = InterpreterState::new(); let mut interpreter = InterpreterState::new();
if !interpreter.init() {
return 1;
}
if exec_file(&mut interpreter, filename) { if exec_file(&mut interpreter, filename) {
0 0

View File

@ -1,6 +1,7 @@
use std::collections::HashMap; use std::collections::HashMap;
use crate::lexer::*; // Identifier, Token, TokenString, etc. use crate::lexer::*; // Identifier, Token, TokenString, etc.
use crate::builtin::load_builtins;
pub type BuiltinFn = fn(&mut InterpreterState) -> bool; pub type BuiltinFn = fn(&mut InterpreterState) -> bool;
@ -49,6 +50,10 @@ impl InterpreterState {
} }
} }
pub fn init(&mut self) -> bool {
load_builtins(self)
}
pub fn push_token(&mut self, token: Token) -> bool { pub fn push_token(&mut self, token: Token) -> bool {
let value = match token { let value = match token {
Token::Eof => return true, Token::Eof => return true,
@ -127,15 +132,3 @@ impl InterpreterState {
self.stack.get(self.stack.len() - 1) self.stack.get(self.stack.len() - 1)
} }
} }
pub fn interpreter_create(load_builtins: fn(&mut InterpreterState) -> bool)
-> Option<InterpreterState>
{
let mut state = InterpreterState::new();
if !load_builtins(&mut state) {
return None;
}
Some(state)
}

View File

@ -68,29 +68,29 @@ pub struct Identifier {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub enum ArrayLiteral { pub enum ArrayLiteral {
Identifiers(Vec<Identifier>), _Identifiers(Vec<Identifier>),
I64(Vec<i64>), _I64(Vec<i64>),
I32(Vec<i32>), _I32(Vec<i32>),
I16(Vec<i16>), _I16(Vec<i16>),
I8(Vec<i8>), _I8(Vec<i8>),
U64(Vec<u64>), _U64(Vec<u64>),
U32(Vec<u32>), _U32(Vec<u32>),
U16(Vec<u16>), _U16(Vec<u16>),
U8(Vec<u8>), _U8(Vec<u8>),
Float(Vec<f32>), _Float(Vec<f32>),
Double(Vec<f64>), _Double(Vec<f64>),
Character(Vec<u8>), _Character(Vec<u8>),
Strings(Vec<String>), _Strings(Vec<String>),
Boolean(Vec<bool>), _Boolean(Vec<bool>),
TokenStrings(Vec<TokenString>), _TokenStrings(Vec<TokenString>),
TypeTuples(Vec<TypeTuple>), _TypeTuples(Vec<TypeTuple>),
StructInline(StructInline), _StructInline(StructInline),
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct ShapedArray { pub struct ShapedArray {
pub array: ArrayLiteral, pub _array: ArrayLiteral,
pub shape: Vec<usize>, pub _shape: Vec<usize>,
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -100,25 +100,25 @@ pub struct TokenString {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct TypeTuple { pub struct TypeTuple {
pub inputs: Vec<Identifier>, pub _inputs: Vec<Identifier>,
pub outputs: Vec<Identifier>, pub _outputs: Vec<Identifier>,
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct StructInline { pub struct StructInline {
pub name: String, pub _name: String,
pub values: Vec<StructValue>, pub _values: Vec<StructValue>,
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub enum StructValue { pub enum StructValue {
Integer(i64), _Integer(i64),
Float(f32), _Float(f32),
Double(f64), _Double(f64),
Boolean(bool), _Boolean(bool),
Character(u8), _Character(u8),
String(String), _String(String),
Token(Token), _Token(Token),
} }
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -190,7 +190,7 @@ impl LexerInfo {
!c.is_ascii_digit() && self.is_identifier_continue(c) !c.is_ascii_digit() && self.is_identifier_continue(c)
} }
fn parse_identifiers_and_booleans(&mut self, start: usize, start_line: usize, start_col: usize) -> LexResult<Token> { fn parse_identifiers_and_booleans(&mut self, _start: usize, start_line: usize, start_col: usize) -> LexResult<Token> {
let mut c = self.peek(); let mut c = self.peek();
let mut literal = false; let mut literal = false;
@ -259,7 +259,7 @@ impl LexerInfo {
Ok(Token::Character(value)) Ok(Token::Character(value))
} }
fn parse_token_string(&mut self, start: usize, start_line: usize, start_col: usize) -> LexResult<Token> { fn parse_token_string(&mut self, _start: usize, start_line: usize, start_col: usize) -> LexResult<Token> {
let mut tokens = Vec::new(); let mut tokens = Vec::new();
self.advance(); // skip '{' self.advance(); // skip '{'
@ -399,7 +399,7 @@ impl LexerInfo {
let mut is_float = false; let mut is_float = false;
let mut is_unsigned = false; let mut is_unsigned = false;
let mut bit_size = 64; // default let bit_size: u32;
if c == 'f' { if c == 'f' {
is_float = true; is_float = true;

View File

@ -14,11 +14,6 @@ use repl::repl;
const SLS_NAME: &str = "SLS_RUST"; const SLS_NAME: &str = "SLS_RUST";
const SLS_VER: &str = "a.0.0"; const SLS_VER: &str = "a.0.0";
// Environment variables set via build.rs for commit hash / compiler.
const GIT_COMMIT_HASH: &str = env!("GIT_COMMIT_HASH", "UNKNOWN");
const COMPILER_NAME: &str = env!("COMPILER_NAME", "Unknown");
const COMPILER_VER: &str = env!("COMPILER_VER", "0");
pub fn print_version() { pub fn print_version() {
let git_hash = option_env!("GIT_COMMIT_HASH").unwrap_or("unknown"); let git_hash = option_env!("GIT_COMMIT_HASH").unwrap_or("unknown");
let compiler = option_env!("COMPILER_NAME").unwrap_or("rustc"); let compiler = option_env!("COMPILER_NAME").unwrap_or("rustc");
@ -26,7 +21,7 @@ pub fn print_version() {
let build_date = std::env::var("BUILD_DATE").unwrap_or_else(|_| "unknown".into()); let build_date = std::env::var("BUILD_DATE").unwrap_or_else(|_| "unknown".into());
let build_time = std::env::var("BUILD_TIME").unwrap_or_else(|_| "unknown".into()); let build_time = std::env::var("BUILD_TIME").unwrap_or_else(|_| "unknown".into());
println!("YREA SLS (SLS_RUST) a.0.0 ({git_hash})"); println!("YREA SLS ({SLS_NAME}) {SLS_VER} ({git_hash})");
println!("Compiled with {compiler} {compiler_ver} at {build_date} {build_time}"); println!("Compiled with {compiler} {compiler_ver} at {build_date} {build_time}");
} }

View File

@ -44,6 +44,9 @@ pub fn repl() -> i32 {
io::stdout().flush().unwrap(); io::stdout().flush().unwrap();
let mut interpreter = InterpreterState::new(); let mut interpreter = InterpreterState::new();
if !interpreter.init() {
return 1;
}
let stdin = io::stdin(); let stdin = io::stdin();
let mut buf = String::new(); let mut buf = String::new();