added identifier table get
This commit is contained in:
parent
867799fec3
commit
91f02bb7ab
2 changed files with 13 additions and 5 deletions
|
@ -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 }));
|
||||
}
|
||||
|
|
7
test.as
7
test.as
|
@ -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)
|
Loading…
Add table
Add a link
Reference in a new issue