Beispiel #1
0
 // CurrentAttributeを確定してこのトークンに追加します。成功するとtrueを返して CurrentAttribute を null にします。
 // 既存の属性と名前がかぶっている場合は失敗し、falseを返します。このとき CurrentAttribute はそのまま残ります。
 // CurrentAttributeがnullのときに呼ぶと true を返します (いつでも呼んで良い)。
 public bool FixAttribute()
 {
     if(myCurrentAttribute == null) return true;
     if(IsDuplicateAttribute){
         DropAttribute();
         myDroppedAttributes.Add(myCurrentAttribute);
         return false;
     }
     myAttributes.Add(myCurrentAttribute.Name, myCurrentAttribute);
     myCurrentAttribute = null;
     return true;
 }
Beispiel #2
0
        // 属性を追加します
        // CurrentAttributeをnullにしてから呼ぶ必要があります。
        // このメソッドを呼ぶ前に FixAttribute を呼んで属性重複エラーがないかチェックしてください。
        public AttributeToken CreateAttribute(char? c, string s)
        {
            if(myCurrentAttribute != null){
                throw new Exception("属性がfixされていません。");
            }

            myCurrentAttribute = new AttributeToken();
            if(c != null){
                myCurrentAttribute.Name = c.ToString();
                myCurrentAttribute.Value = s;
            }
            return CurrentAttribute;
        }