This commit is contained in:
2024-07-01 18:12:06 +02:00
parent d561682136
commit 001636c799
2 changed files with 23 additions and 16 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ mod variable;
fn main() {
let mut vars = Variables::new();
let mut trsp = transpiler::Transpiler::default();
let out = trsp.transpile("(xyz)".to_string(), 0, &mut vars);
let out = trsp.transpile("{xyz}".to_string(), 0, &mut vars);
for p in trsp.problems {
println!("{:?}: {}", p.problem_type, p.problem_msg)
}
+22 -15
View File
@@ -23,6 +23,7 @@ pub fn get_token(v: String, t: u32, state: State) -> Token {
1 => Token::Number(v, state),
2 => Token::Identifier(v, state),
3 => Token::Round(v, state),
4 => Token::Curly(v, state),
_ => Token::Number(String::from(""), state),
}
}
@@ -42,9 +43,15 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
root.state.column += 1;
if stoken.1 > 0 {
match c {
')' => {
'(' => {
if stoken.0 == 1 {
stoken.1 += 1;
token_value += c.to_string().as_str();
}
}
')' => {
if stoken.0 == 1 {
stoken.1 -= 1;
if stoken.1 == 0 {
stoken.0 = 0;
tokens.push(get_token(
@@ -59,15 +66,15 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
}
}
}
'(' => {
if stoken.0 == 1 {
stoken.1 -= 1;
token_value += c.to_string().as_str();
}
}
'{' => {
if stoken.0 == 2 {
if stoken.0 == 1 {
stoken.1 += 1;
token_value += c.to_string().as_str();
}
}
'}' => {
if stoken.0 == 1 {
stoken.1 -= 1;
if stoken.1 == 0 {
stoken.0 = 0;
tokens.push(get_token(
@@ -82,12 +89,6 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
}
}
}
'}' => {
if stoken.0 == 2 {
stoken.1 -= 1;
token_value += c.to_string().as_str();
}
}
_ => token_value += c.to_string().as_str(),
}
} else {
@@ -110,10 +111,16 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
}
'(' => {
stoken.0 = 1;
stoken.1 += 1;
stoken.1 = 1;
tval = ' ';
t = 3;
}
'{' => {
stoken.0 = 2;
stoken.1 = 1;
tval = ' ';
t = 4;
}
x => {
root.problems.push(Problem {
problem_msg: format!(