本文整理汇总了C#中Root.Accept方法的典型用法代码示例。如果您正苦于以下问题:C# Root.Accept方法的具体用法?C# Root.Accept怎么用?C# Root.Accept使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Root
的用法示例。
在下文中一共展示了Root.Accept方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Generate
/// <summary>Generates code</summary>
/// <param name="tree">Root of a syntax tree</param>
/// <param name="table">Table of symbols</param>
/// <param name="columns">Columns layout</param>
public void Generate(Root tree, SymbolTable table, ColumnsLayout columns = ColumnsLayout.FreeTextFormat)
{
Actions = new List<Action>();
// STEP 1: modify tree to adapt it to destination language
tree.Accept(this);
var groups = new List<string>();
foreach (var action in Actions) {
if (action.Group != null && groups.Contains(action.Group)) continue;
action.Execute();
if (action.Group != null) groups.Add(action.Group);
}
// Console.WriteLine(tree.Root.ToString());
// STEP 2: convert tree to destination language code
var converter = new TreeToCode(Input, columns);
tree.Accept(converter);
converter.WriteInputLinesUntilEnd();
Writer.Write(converter.Output.ToString());
Writer.Flush();
// Console.WriteLine(converter.Output.ToString());
}