- changed assignment operators to be expressions, like they are in C and DECORATE.
This also means that for now Lua-style multi-assignments are disabled, those should be easy to enable by making some changes to the assignment_statement grammar so that it doesn't recognize single assignments, but for now this is low priority because it adds a significant amount of complexity to do this right with functions that have multiple return values.
This commit is contained in:
parent
1450c3dffb
commit
3e995d7aac
5 changed files with 102 additions and 60 deletions
|
|
@ -747,21 +747,6 @@ static void PrintAssignStmt(FLispString &out, ZCC_TreeNode *node)
|
|||
{
|
||||
ZCC_AssignStmt *snode = (ZCC_AssignStmt *)node;
|
||||
out.Open("assign-stmt");
|
||||
switch (snode->AssignOp)
|
||||
{
|
||||
case ZCC_EQ: out.AddChar('='); break;
|
||||
case ZCC_MULEQ: out.Add("*=", 2); break;
|
||||
case ZCC_DIVEQ: out.Add("/=", 2); break;
|
||||
case ZCC_MODEQ: out.Add("%=", 2); break;
|
||||
case ZCC_ADDEQ: out.Add("+=", 2); break;
|
||||
case ZCC_SUBEQ: out.Add("-=", 2); break;
|
||||
case ZCC_LSHEQ: out.Add("<<=", 2); break;
|
||||
case ZCC_RSHEQ: out.Add(">>=", 2); break;
|
||||
case ZCC_ANDEQ: out.Add("&=", 2); break;
|
||||
case ZCC_OREQ: out.Add("|=", 2); break;
|
||||
case ZCC_XOREQ: out.Add("^=", 2); break;
|
||||
default: BadAssignOp(out, snode->AssignOp); break;
|
||||
}
|
||||
PrintNodes(out, snode->Dests);
|
||||
PrintNodes(out, snode->Sources);
|
||||
out.Close();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue