| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'ast.dart'; |
| import 'generator_tools.dart'; |
| |
| /// Writes the AST represention of [root] to [sink]. |
| void generateAst(Root root, StringSink sink) { |
| final Indent indent = Indent(sink); |
| final String output = root.toString(); |
| bool isFirst = true; |
| for (final int ch in output.runes) { |
| final String chStr = String.fromCharCode(ch); |
| if (chStr == '(') { |
| if (isFirst) { |
| isFirst = false; |
| } else { |
| indent.inc(); |
| indent.addln(''); |
| indent.write(''); |
| } |
| } else if (chStr == ')') { |
| indent.dec(); |
| } |
| indent.add(chStr); |
| } |
| indent.addln(''); |
| } |