예제 #1
0
파일: NodeValue.cs 프로젝트: wrmsr/xdc
        public virtual NodeValue Concat(NodeValue other)
        {
            if(other == null)
                return this;

            return new CompoundNodeValue(Enumerations.Combine(Terminals, other.Terminals));
        }
예제 #2
0
파일: NodeValue.cs 프로젝트: wrmsr/xdc
 public static NodeValue Concat(NodeValue a, NodeValue b)
 {
     return
         a == null ? b :
         b is NullNodeValue ? b :
         a.Concat(b);
 }
예제 #3
0
파일: FileValueNode.cs 프로젝트: wrmsr/xdc
        public FileValueContext(NodeContext parent, FileValueNode node)
            : base(parent, node)
        {
            KeyValuePair<string, string> splitName = FileValues.SplitName(((FileValueNode)Node).Value);

            IFileValues fileValues = null;
            if(!Root.GetShared<FileValueShared>().FileValues.TryGetValue(splitName.Key, out fileValues))
                throw new ApplicationException("FileValues not found: " + splitName.Key);

            val = fileValues.Get(splitName.Value) ?? new NullNodeValue();
        }
예제 #4
0
파일: NodeValue.cs 프로젝트: wrmsr/xdc
 public override NodeValue Concat(NodeValue other)
 {
     if(other is StaticNodeValue)
         return new StaticNodeValue(Value + ((StaticNodeValue)other).Value);
     else
         return base.Concat(other);
 }
예제 #5
0
파일: NodeValue.cs 프로젝트: wrmsr/xdc
 public override NodeValue Concat(NodeValue other)
 {
     return this;
 }
예제 #6
0
파일: TextNode.cs 프로젝트: wrmsr/xdc
 public TextContext(NodeContext parent, TextNode node)
     : base(parent, node)
 {
     val = new StaticNodeValue(((TextNode)Node).Value);
 }