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);
        }
Esempio n. 3
0
        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;
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
 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);
 }
Esempio n. 9
0
 public ElseIfTemplate(IfTemplate template, ICodeFragment condition)
 {
     this.IfTemplate = template;
     this.Condition  = condition;
     this.Code       = new MultilineCodeFragment();
 }