public override CodeTreeNode BuildCodeTree(RuntimeState state) { return(new WhileNode( Source, condition.BuildCodeTree(state), body.BuildCodeTree(state))); }
public override CodeTreeNode BuildCodeTree(RuntimeState state) { return(new IfNode( Source, condition.BuildCodeTree(state), trueBody.BuildCodeTree(state), falseBody == null ? null : falseBody.BuildCodeTree(state))); }
public override CodeTreeNode BuildCodeTree(RuntimeState state) { return(new TryNode( Source, tryBody.BuildCodeTree(state), catchVariable != null ? catchVariable.BuildCodeTree(state) : null, catchBody.BuildCodeTree(state))); }
public void Define(RuntimeState state) { List <string> parameters = new List <string>(); foreach (Name parameter in this.parameters) { parameters.Add(parameter.name); } Method function = new Method( name.name, name.name, false, parameters); function.SetCodeTree(body.BuildCodeTree(state)); state.Scope.SetName(name.name, function); }
public override void Build(RuntimeState state, ClassBuilder builder) { List <string> parameters = new List <string>(); foreach (Name parameter in this.parameters) { parameters.Add(parameter.name); } Method method = new Method( builder.TypeBuilder.Name + "." + name.name, name.name, true, parameters); method.SetCodeTree(body.BuildCodeTree(state)); builder.AddMethod(method); }