public void ExtractLayoutInfo(LayoutInformation info, ParseTreeNode parent ) { foreach (var node in parent.ChildNodes) { if (node.Term == mLanguage.LayoutQualifierId) { var firstNode = node.ChildNodes [0]; if (firstNode.Term == mLanguage.IDENTIFIER) { var strValue = firstNode.Token.ValueString; if (node.ChildNodes.Count == 1) { if (mLayouts.Contains (strValue)) { info.Format = strValue; } } else if (node.ChildNodes.Count == 3) { var thirdNode = node.ChildNodes [2]; if (node.ChildNodes [1].Token.ValueString == "=" && thirdNode.Term == mLanguage.ConstantExpression) { info.Location = (int) thirdNode.ChildNodes[0].Token.Value; } } } } } }
private void ExtractLayout(LayoutInformation info, ParseTreeNode parent) { if (parent != null) { foreach (var child in parent.ChildNodes) { if (child.Term == mLanguage.LayoutQualifier) { foreach (var node in child.ChildNodes) { if (node.Term == mLanguage.LayoutQualifierIdList) { ExtractLayoutInfo (info, node); } } } } } }