Skip to content

Commit

Permalink
Merge branch 'auto_declaration' into declare_auto
Browse files Browse the repository at this point in the history
  • Loading branch information
NotFound committed Jun 5, 2012
2 parents 2a7f1bd + 4102182 commit 7bab056
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions winxedst2.winxed
Expand Up @@ -2582,6 +2582,8 @@ function parseStatement(var tk, var owner)
if (! t2.isop("("))
return parseFloat(t, tk, owner);
break;
case "auto":
return parseAuto(t, tk, owner);
case "return":
return parseReturn(t, tk, owner);
case "yield":
Expand Down Expand Up @@ -10425,6 +10427,42 @@ function parseVolatile(var start, var tk, var owner)
return parseVar(start, tk, owner, VAR_is_volatile);
}

//*********************************************
// AutoStatement
//*********************************************

class AutoStatement : Statement
{
var name;
var expr;
function AutoStatement(var start, var tk, var owner, var name)
{
self.Statement(start, owner);
self.name = name;
self.expr = parseExpr(tk, owner);
ExpectOp(";", tk);
}
function optimize()
{
self.expr = self.expr.optimize();
return self;
}
function emit(var e)
{
throw "UNIMPLEMENTED, TESTING";
}
}

function parseAuto(var start, var tk, var owner)
{
var name = tk.get();
RequireIdentifier(name);
var t = tk.get();
RequireOp("=", t);
:AutoStatement st(start, tk, owner, name);
return st;
}

//*********************************************
// CompoundStatement
//*********************************************
Expand Down

0 comments on commit 7bab056

Please sign in to comment.