curly
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ mod variable;
|
|||||||
fn main() {
|
fn main() {
|
||||||
let mut vars = Variables::new();
|
let mut vars = Variables::new();
|
||||||
let mut trsp = transpiler::Transpiler::default();
|
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 {
|
for p in trsp.problems {
|
||||||
println!("{:?}: {}", p.problem_type, p.problem_msg)
|
println!("{:?}: {}", p.problem_type, p.problem_msg)
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-15
@@ -23,6 +23,7 @@ pub fn get_token(v: String, t: u32, state: State) -> Token {
|
|||||||
1 => Token::Number(v, state),
|
1 => Token::Number(v, state),
|
||||||
2 => Token::Identifier(v, state),
|
2 => Token::Identifier(v, state),
|
||||||
3 => Token::Round(v, state),
|
3 => Token::Round(v, state),
|
||||||
|
4 => Token::Curly(v, state),
|
||||||
_ => Token::Number(String::from(""), state),
|
_ => Token::Number(String::from(""), state),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,9 +43,15 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
|
|||||||
root.state.column += 1;
|
root.state.column += 1;
|
||||||
if stoken.1 > 0 {
|
if stoken.1 > 0 {
|
||||||
match c {
|
match c {
|
||||||
')' => {
|
'(' => {
|
||||||
if stoken.0 == 1 {
|
if stoken.0 == 1 {
|
||||||
stoken.1 += 1;
|
stoken.1 += 1;
|
||||||
|
token_value += c.to_string().as_str();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
')' => {
|
||||||
|
if stoken.0 == 1 {
|
||||||
|
stoken.1 -= 1;
|
||||||
if stoken.1 == 0 {
|
if stoken.1 == 0 {
|
||||||
stoken.0 = 0;
|
stoken.0 = 0;
|
||||||
tokens.push(get_token(
|
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;
|
stoken.1 += 1;
|
||||||
|
token_value += c.to_string().as_str();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'}' => {
|
||||||
|
if stoken.0 == 1 {
|
||||||
|
stoken.1 -= 1;
|
||||||
if stoken.1 == 0 {
|
if stoken.1 == 0 {
|
||||||
stoken.0 = 0;
|
stoken.0 = 0;
|
||||||
tokens.push(get_token(
|
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(),
|
_ => token_value += c.to_string().as_str(),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -110,10 +111,16 @@ pub fn tokenize(code: String, root: &mut Transpiler) -> Vec<Token> {
|
|||||||
}
|
}
|
||||||
'(' => {
|
'(' => {
|
||||||
stoken.0 = 1;
|
stoken.0 = 1;
|
||||||
stoken.1 += 1;
|
stoken.1 = 1;
|
||||||
tval = ' ';
|
tval = ' ';
|
||||||
t = 3;
|
t = 3;
|
||||||
}
|
}
|
||||||
|
'{' => {
|
||||||
|
stoken.0 = 2;
|
||||||
|
stoken.1 = 1;
|
||||||
|
tval = ' ';
|
||||||
|
t = 4;
|
||||||
|
}
|
||||||
x => {
|
x => {
|
||||||
root.problems.push(Problem {
|
root.problems.push(Problem {
|
||||||
problem_msg: format!(
|
problem_msg: format!(
|
||||||
|
|||||||
Reference in New Issue
Block a user