Example #1
0
 public void setName(VarI1 var, Name.Asserted name)
 {
     if (this.vars.Contain(var))
     {
         if (
             this.namings
             .Where(x => x.Key != var)
             .Select(x => x.Value)
             .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name)
             )
         {
             throw new Exception("there are conflicting names.");
         }
         else
         {
             _namings[var] = name;
         }
     }
     else
     {
         if (
             this.namings
             .Select(x => x.Value)
             .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name)
             )
         {
             throw new Exception("there are conflicting names.");
         }
         else
         {
             _namings[var] = name;                      // If the specified key is not found, a get operation throws a KeyNotFoundException, and a set operation creates a new element with the specified key.
         }
     }
 }
Example #2
0
 public T getVarByName <T>(Name.Asserted name) where T : VarI1
 {
     if (containName(name))
     {
         return((T)(_namings.Where(x => x.Value == name).First().Key));
     }
     throw new Exception("no such name");
 }
Example #3
0
 public bool containName(Name.Asserted name)
 {
     if (
         this.namings
         .Select(x => x.Value)
         .Contain_eqDefault <Name.Asserted, nilnul.name.Eq>(name)
         )
     {
         return(true);
     }
     return(false);
 }
Example #4
0
 public T getOrCreateVar <T>(Name.Asserted name) where T : VarI1, new()
 {
     if (containName(name))
     {
         return(getVarByName <T>(name));
     }
     else
     {
         var v = new T();
         setName(v, name);
         return(v);
     }
 }