public static ElseIfTemplate ElseIf(this IfTemplate template, ICodeFragment condition) { ElseIfTemplate elseIfTemplate = new ElseIfTemplate(condition); template.ElseIf.Add(elseIfTemplate); return(elseIfTemplate); }
public static ElseTemplate Else(this IfTemplate template) { ElseTemplate elseTemplate = new ElseTemplate(); template.Else = elseTemplate; return(elseTemplate); }
public static IfTemplate If(this Code _, ICodeFragment condition, Action <IfTemplate> action = null) { IfTemplate template = new IfTemplate(condition); action?.Invoke(template); return(template); }
public void ObserveIfStatement(VHDLCompilerInterface compiler, IfStatement statement) { string condition = VHDLOperandGenerator.GetOperand(statement.Condition, compiler); List <string> statements = new List <string>(); List <string> elseStatements = new List <string>(); List <IfTemplateElsifStatement> elsifParts = new List <IfTemplateElsifStatement>(); foreach (var st in statement.Statements) { statements.Add(GetSequentialCode(compiler, st)); } foreach (var st in statement.ElseStatements) { elseStatements.Add(GetSequentialCode(compiler, st)); } foreach (var elsif in statement.ElsifParts) { elsifParts.Add(GetElsifObject(compiler, elsif)); } IfTemplate template = new IfTemplate(condition, statements, elsifParts, elseStatements); string resultCode = template.TransformText(); code = resultCode; }
public void IfWriter() { Assert.Inconclusive("Not implemented yet"); IfTemplate template = new IfTemplate(Code.Local("test").Equals().String("string")); template.Code.AddLine(Code.Comment("Some code here")); IfWriter writer = new IfWriter(); writer.Write(template, this.output); Assert.AreEqual("if (test == \"string\")\r\n{\r\n // Some code here\r\n}", this.output.ToString()); }
public virtual void Write(ICodeFragment fragment, IOutputCache output) { IfTemplate template = (IfTemplate)fragment; output.Add("if (") .Add(template.Condition) .Add(")") .StartBlock() .Add(template.Code) .EndBlock() .If(template.ElseIf.Count > 0).Add(template.ElseIf).EndIf() .If(template.Else != null).Add(template.Else).EndIf(); }
public ElseTemplate(IfTemplate template) { this.template = template; this.Code = new MultilineCodeFragment(); }
public static IfTemplate WithCode(this IfTemplate template, ICodeFragment code) { template.Code.AddLine(code); return(template); }
public ElseIfTemplate(IfTemplate template, ICodeFragment condition) { this.IfTemplate = template; this.Condition = condition; this.Code = new MultilineCodeFragment(); }