add: tokenizer for content

This commit is contained in:
2026-08-23 22:55:16 +05:30
parent 4b2ecb367d
commit 3bc9e06673
4 changed files with 90 additions and 6 deletions
Generated
+68
View File
@@ -2,6 +2,15 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 4 version = 4
[[package]]
name = "aho-corasick"
version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
dependencies = [
"memchr",
]
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.5.2" version = "0.5.2"
@@ -37,6 +46,12 @@ version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
[[package]]
name = "memchr"
version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]] [[package]]
name = "owo-colors" name = "owo-colors"
version = "4.3.0" version = "4.3.0"
@@ -57,12 +72,53 @@ dependencies = [
"owo-colors", "owo-colors",
] ]
[[package]]
name = "proc-macro2"
version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
dependencies = [
"unicode-ident",
]
[[package]]
name = "regex"
version = "1.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",
]
[[package]]
name = "regex-automata"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
[[package]] [[package]]
name = "shiro" name = "shiro"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"log", "log",
"plume-log", "plume-log",
"proc-macro2",
"regex",
"token-string",
] ]
[[package]] [[package]]
@@ -84,6 +140,18 @@ dependencies = [
"is_ci", "is_ci",
] ]
[[package]]
name = "token-string"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed962f478bffb24bef4387092d43a47b5bee907377e93e9aa11465495bef4067"
[[package]]
name = "unicode-ident"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]] [[package]]
name = "windows-link" name = "windows-link"
version = "0.2.1" version = "0.2.1"
+3
View File
@@ -6,3 +6,6 @@ edition = "2024"
[dependencies] [dependencies]
log = "0.4.34" log = "0.4.34"
plume-log = "0.3.0" plume-log = "0.3.0"
proc-macro2 = "1.0.107"
regex = "1.13.1"
token-string = "0.8.4"
+9
View File
@@ -10,4 +10,13 @@ main() {
x++; x++;
} }
print("x is % now", x); print("x is % now", x);
string file_path = "../examples/print.sr";
fs.read(file_path);
uint8[] x = [1,2,3];
x.push(4);
x.push(1);
x.push(2);
} }
+10 -6
View File
@@ -1,11 +1,13 @@
#![allow(unused_imports)] #![allow(unused)]
#![allow(dead_code)] #![allow(dead_code)]
use std::env; use std::env;
use std::fs::File; use std::fs::File;
use std::fs;
use std::io::{BufRead, BufReader}; use std::io::{BufRead, BufReader};
use log::{debug, error, info, trace, warn}; use log::{debug, error, info, trace, warn};
use plume_log::{PlumeBuilder, success}; use plume_log::{PlumeBuilder, success};
use regex::Regex;
struct SymbolRow { struct SymbolRow {
sym: String, sym: String,
@@ -30,12 +32,14 @@ fn main() -> std::io::Result<()>{
std::process::exit(-1); std::process::exit(-1);
} }
info!("File: {}", file_path); info!("File: {}", file_path);
let file = File::open(&args[1])?; let content = fs::read_to_string(file_path)
let reader = BufReader::new(file); .expect("Should've read the file");
for line in reader.lines() { let re = Regex::new(r"[ \n\t]+").unwrap();
println!("+ {}", line?); let tokens: Vec<&str> = re.split(&content).filter(|s| !s.is_empty()).collect();
for token in tokens {
print!("{token} ",);
} }
Ok(()) Ok(())
} }