Merge db7d66f03e
into cd9fb4aa66
commit
7366da09ab
@ -0,0 +1,35 @@
|
||||
module tlang.compiler.symbols.aliases;
|
||||
|
||||
import tlang.compiler.symbols.data : Statement;
|
||||
import tlang.compiler.symbols.expressions : Expression;
|
||||
import std.string : format;
|
||||
|
||||
/**
|
||||
* A declaration of an alias expression
|
||||
*/
|
||||
public final class AliasDeclaration : Statement
|
||||
{
|
||||
private string aliasName;
|
||||
private Expression aliasExpr;
|
||||
|
||||
this(string aliasName, Expression aliasExpr)
|
||||
{
|
||||
this.aliasName = aliasName;
|
||||
this.aliasExpr = aliasExpr;
|
||||
}
|
||||
|
||||
public string getName()
|
||||
{
|
||||
return this.aliasName;
|
||||
}
|
||||
|
||||
public Expression getExpr()
|
||||
{
|
||||
return this.aliasExpr;
|
||||
}
|
||||
|
||||
public override string toString()
|
||||
{
|
||||
return format("Alias [name: %s, expr: %s]", this.aliasName, this.aliasExpr);
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
module simple_aliases;
|
||||
|
||||
int c = 0;
|
||||
int cnt()
|
||||
{
|
||||
c=c+1;
|
||||
return c;
|
||||
}
|
||||
|
||||
alias expr = cnt();
|
||||
|
||||
alias inner = 1;
|
||||
|
||||
int identity(int i)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
alias inner = sizeof(ubyte)-cast(ubyte)1;
|
||||
int i = expr;
|
||||
int p = expr;
|
||||
int o = identity(inner);
|
||||
return i+p+o;
|
||||
}
|
Loading…
Reference in New Issue