internal void Serialize(CstNode node) { if (!node.HasToken) { _serializer.Serialize(true); _serializer.Serialize(node.Name); _serializer.Serialize(node.RuleId); foreach (var child in node.Children()) { _serializer.Serialize(true); Serialize(child); } _serializer.Serialize(false); } else { _serializer.Serialize(false); Serialize(node.Value); _serializer.Serialize(node.Hiddens.Count); foreach (var hiddenToken in node.Hiddens) { Serialize(hiddenToken); } } }
public static string TokenText(this IEnumerable <CstNode> nodes) { var builder = new StringBuilder(); foreach (var node in nodes) { CstNode.GenerateCodeWithoutInsertedAndHiddens(node, builder); } return(builder.ToString()); }
public static string Code(this IEnumerable <CstNode> nodes) { var builder = new StringBuilder(); foreach (var node in nodes) { CstNode.GenerateCode(node, builder); } return(builder.ToString()); }
protected virtual CstNode DeserializeInnerNode() { var name = Deserializer.DeserializeString(); var ruleId = Deserializer.DeserializeString(); var node = new CstNode(name, ruleId); while (Deserializer.DeserializeBoolean()) { node.AddLast(DeserializeNode()); } return(node); }
public static CstNode ToCst(this XElement e) { return(CstNode.FromXml(e)); }
public static string SafeTokenText(this CstNode self) { return(self != null ? self.TokenText : null); }
public static CstNode SafeParent(this CstNode self) { return(self != null ? self.Parent : null); }
public static string SafeName(this CstNode self) { return(self != null ? self.Name : null); }