mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
[Tolk] Support syntax tensorVar.0
and tupleVar.0
It works both for reading and writing: > var t = (1, 2); > t.0; // 1 > t.0 = 5; > t; // (5, 2) It also works for typed/untyped tuples, producing INDEX and SETINDEX. Global tensors and tuples works. Nesting `t.0.1.2` works. `mutate` works. Even mixing tuples inside tensors inside a global for writing works.
This commit is contained in:
parent
565bc59735
commit
7a1602f591
42 changed files with 1119 additions and 338 deletions
|
@ -405,12 +405,15 @@ static AnyExprV parse_expr80(Lexer& lex) {
|
|||
lex.next();
|
||||
V<ast_identifier> v_ident = nullptr;
|
||||
V<ast_instantiationT_list> v_instantiationTs = nullptr;
|
||||
if (lex.tok() == tok_identifier) {
|
||||
if (lex.tok() == tok_identifier) { // obj.field / obj.method
|
||||
v_ident = createV<ast_identifier>(lex.cur_location(), lex.cur_str());
|
||||
lex.next();
|
||||
if (lex.tok() == tok_lt) {
|
||||
v_instantiationTs = parse_maybe_instantiationTs_after_identifier(lex);
|
||||
}
|
||||
} else if (lex.tok() == tok_int_const) { // obj.0 (indexed access)
|
||||
v_ident = createV<ast_identifier>(lex.cur_location(), lex.cur_str());
|
||||
lex.next();
|
||||
} else {
|
||||
lex.unexpected("method name");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue