Где найти документацию по матчингу квази цитат
От: CodingUnit Россия  
Дата: 15.06.11 09:32
Оценка:
Довольно скудно описан синтаксис для матчинга самих выражений, который довольно часто используется в макросах.
Встречаю только отдельные примеры в макросах и сниппетах, типа таких применений:
делать


match (...) 
 | <[ $nm [..$generics] ]> =>
          def (parms, args) = interpret_generics (generics);
          (nm, parms, args, <[ $nm.[..$args] ]> )
          
      | <[ Override ($current, $overriden) ]> =>
        def (nm,parms,args,_) = interpret_expr (current);
        (nm, parms, args, overriden)
        
      | _ => (e, [], [], e)
    }

def get_simple_name (e, nm) {
      match (e) {
        | <[ $e [..$_] ]> 
        | <[ $e . [..$_] ]> 
        | <[ $e ]> =>
          match (Util.QidOfExpr (e)) {  
            | Some ((li, _)) => (li.Last, nm : object == e) // nm == e iff we didn't have Override specified
            | _ => Message.FatalError (e.Location, $"invalid overriden type specified: $e");
          }
      }
    }


но где достать полноценное описание и список всех вариантов матчингов выражений?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.