public override Executable ResolveNamesAndCullUnusedCode(PastelCompiler compiler) { this.InitCode = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.InitCode, compiler).ToArray(); this.Condition = this.Condition.ResolveNamesAndCullUnusedCode(compiler); this.StepCode = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.StepCode, compiler).ToArray(); // TODO: check Condition for falseness this.Code = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.Code, compiler).ToArray(); return(this); }
public override Executable ResolveNamesAndCullUnusedCode(PastelCompiler compiler) { this.Condition = this.Condition.ResolveNamesAndCullUnusedCode(compiler); for (int i = 0; i < this.Chunks.Length; ++i) { SwitchChunk chunk = this.Chunks[i]; for (int j = 0; j < chunk.Cases.Length; ++j) { if (chunk.Cases[j] != null) { chunk.Cases[j] = chunk.Cases[j].ResolveNamesAndCullUnusedCode(compiler); } } chunk.Code = Executable.ResolveNamesAndCullUnusedCodeForBlock(chunk.Code, compiler).ToArray(); } return(this); }
public override Executable ResolveNamesAndCullUnusedCode(PastelCompiler compiler) { this.Condition = this.Condition.ResolveNamesAndCullUnusedCode(compiler); if (this.Condition is InlineConstant) { object value = ((InlineConstant)this.Condition).Value; if (value is bool) { return(new ExecutableBatch(this.FirstToken, Executable.ResolveNamesAndCullUnusedCodeForBlock( ((bool)value) ? this.IfCode : this.ElseCode, compiler))); } } this.IfCode = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.IfCode, compiler).ToArray(); this.ElseCode = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.ElseCode, compiler).ToArray(); return(this); }
public void ResolveNamesAndCullUnusedCode(PastelCompiler compiler) { this.Code = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.Code, compiler).ToArray(); }
public override Executable ResolveNamesAndCullUnusedCode(PastelCompiler compiler) { this.Condition = this.Condition.ResolveNamesAndCullUnusedCode(compiler); this.Code = Executable.ResolveNamesAndCullUnusedCodeForBlock(this.Code, compiler).ToArray(); return(this); }