Esempio n. 1
0
 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);
         }
     }
 }
Esempio n. 2
0
        public static string TokenText(this IEnumerable <CstNode> nodes)
        {
            var builder = new StringBuilder();

            foreach (var node in nodes)
            {
                CstNode.GenerateCodeWithoutInsertedAndHiddens(node, builder);
            }
            return(builder.ToString());
        }
Esempio n. 3
0
        public static string Code(this IEnumerable <CstNode> nodes)
        {
            var builder = new StringBuilder();

            foreach (var node in nodes)
            {
                CstNode.GenerateCode(node, builder);
            }
            return(builder.ToString());
        }
Esempio n. 4
0
            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);
            }
Esempio n. 5
0
 public static CstNode ToCst(this XElement e)
 {
     return(CstNode.FromXml(e));
 }
Esempio n. 6
0
 public static string SafeTokenText(this CstNode self)
 {
     return(self != null ? self.TokenText : null);
 }
Esempio n. 7
0
 public static CstNode SafeParent(this CstNode self)
 {
     return(self != null ? self.Parent : null);
 }
Esempio n. 8
0
 public static string SafeName(this CstNode self)
 {
     return(self != null ? self.Name : null);
 }