Skip to content
  • Mark OLESEN's avatar
    ENH: improve infrastructure for detecting excess tokens (issue #762) · 511b3562
    Mark OLESEN authored
    - Always used for optional dictionary entries, since these are individual
      values, and not meant to be embedded in a larger stream of tokens.
    
      Methods:
         - lookupOrDefault, lookupOrAddDefault, lookupOrDefaultCompat
         - readIfPresent, readIfPresentCompat
    
    - Handling mandatory dictionary entries is slightly more complex,
      since these may be part of larger stream of tokens, and are often
      used in a constructor context. For example,
    
          word modelType(dict.lookup("type"));
    
      Or they are used without a definite context. For example,
    
          dict.lookup("format") >> outputFormat;
    
      Newly introduced methods for mandatory dictionary entries:
         - get, getCompat
         - read, readCompat
    
      In a constructor or assignment context:
    
          word modelType(dict.get<word>("type"));
          outputFormat = dict.lookup("format");
    
      without copy/move (similar to readIfPresent):
    
          dict.read("format", outputFormat);
    511b3562