Exemple #1
0
        override public void Run()
        {
            BooPrinterVisitor visitor = new BooPrinterVisitor(OutputWriter);

            if (Parameters.WhiteSpaceAgnostic)
            {
                visitor.Options |= BooPrinterVisitor.PrintOptions.WSA;
            }
            visitor.Print(CompileUnit);
        }
        public override string GenerateCode(AbstractNode node, string indentation)
        {
            StringBuilder     errorBuilder = new StringBuilder();
            ConverterSettings settings     = new ConverterSettings("codegeneration.cs");
            string            output       = null;

            Node booNode = (Node)node.AcceptVisitor(new ConvertVisitor(settings), null);

            if (settings.Errors.Count > 0)
            {
                foreach (CompilerError error in settings.Errors)
                {
                    errorBuilder.AppendLine(error.ToString());
                }
            }
            else
            {
                if (settings.Warnings.Count > 0)
                {
                    foreach (CompilerWarning warning in settings.Warnings)
                    {
                        errorBuilder.AppendLine(warning.ToString());
                    }
                }
                booNode.Accept(new RemoveRedundantTypeReferencesVisitor());
                using (StringWriter w = new StringWriter()) {
                    BooPrinterVisitor printer = new BooPrinterVisitor(w);
                    int indentCount           = 0;
                    foreach (char c in indentation)
                    {
                        if (c == '\t')
                        {
                            indentCount += 4;
                        }
                        else
                        {
                            indentCount += 1;
                        }
                    }
                    indentCount /= 4;
                    while (indentCount-- > 0)
                    {
                        printer.Indent();
                    }
                    booNode.Accept(printer);
                    output = w.ToString();
                }
            }
            if (errorBuilder.Length > 0)
            {
                MessageService.ShowMessage(errorBuilder.ToString());
            }
            return(output);
        }
Exemple #3
0
 public string CSharpOperatorFor(BinaryOperatorType op)
 {
     return((op != BinaryOperatorType.And) ? ((op != BinaryOperatorType.Or) ? BooPrinterVisitor.GetBinaryOperatorText(op) : "||") : "&&");
 }
Exemple #4
0
        override public void Run()
        {
            BooPrinterVisitor visitor = new BooPrinterVisitor(OutputWriter);

            visitor.Print(CompileUnit);
        }