added identifier table get

This commit is contained in:
afonya2 2025-06-08 22:21:57 +02:00
parent 867799fec3
commit 91f02bb7ab
Signed by: afonya
GPG key ID: EBB9C4CAFAAFB2DC
2 changed files with 13 additions and 5 deletions

View file

@ -491,6 +491,17 @@ fn read_exp(pos: &mut usize, input: &Vec<Token>, ends: &Vec<Token>, parse_ends:
}
*pos += 1;
expressions.push(ASTPart::TableGet(AstTableGet { table: Box::new(ASTPart::VarRead(AstVarRead { variable: token.value.clone(), pos: var_pos })), key: Box::new(keyy), pos: var_pos+1 }));
} else if next_token.typ == TokenType::SEPARATOR && next_token.value == "." {
let var_pos = token.pos;
*pos += 1;
let keyy = &input[*pos];
if keyy.typ != TokenType::IDENTIFIER {
let err = create_error(&format!("Expected identifier after `.`"), keyy.pos, ErrorType::SyntaxError, ErrorSubType::Expected);
print_error(&err, &ctx);
process::exit(1);
}
*pos += 1;
expressions.push(ASTPart::TableGet(AstTableGet { table: Box::new(ASTPart::VarRead(AstVarRead { variable: token.value.clone(), pos: var_pos })), key: Box::new(ASTPart::String(AstString { value: keyy.value.clone(), pos: keyy.pos })), pos: var_pos+1 }));
} else {
expressions.push(ASTPart::VarRead(AstVarRead { variable: token.value.clone(), pos: token.pos }));
}

View file

@ -1,5 +1,2 @@
ugass(szaft"test"szaft, ugass)
gethelj a = lőcsve() {
gethelj b = 1 + piszv
}
a()
gethelj a = {[szaft"test"szaft] = 1}
ugass(a.1)