--# -path=.:../abstract:../common:../prelude

concrete SymbolGre of Symbol = 
  CatGre ** open Prelude, CommonGre, ResGre in {

flags coding= utf8 ;


lin
  SymbPN i = {s = \\_,_ => i.s ; g = Masc };
  IntPN i  = {s = \\_,_ => i.s ; g = Masc } ;
  FloatPN i = {s = \\_,_ => i.s ; g = Masc } ;
  NumPN i  =  {s = \\_,_ => i.s ! Masc ! Nom ; g = Masc } ;


  CNIntNP cn i = heavyNP {
    s = \\c => prepCase c ++ cn.s ! Sg!c ++ i.s ;
    a = agrP3 cn.g Sg ;
    hasClit = False
    } ;
  CNSymbNP det cn xs = let g = cn.g in heavyNP {
    s = \\c => det.s ! g ! c ++ cn.s ! det.n ! c++ xs.s ; 
    a = agrP3 g det.n ;
    hasClit = False
    } ;
  CNNumNP cn i = heavyNP {
    s = \\c => artDef cn.g Sg c ++ cn.s ! Sg!c ++ i.s ! Masc!c ;
    a = agrP3 cn.g Sg ;
    hasClit = False
    } ;

  SymbS sy = {s = \\_ => sy.s} ;

  SymbNum n = {s = \\_,_ => n.s ; isNum = True ; n = Pl} ;
  SymbOrd n = {s = \\_,_,_,_ => glue n.s "." ; adv=   table { Posit => " "  ; Compar =>  " " ; Superl =>  " "}} ; 

lincat 

  Symb, [Symb] = SS ;

lin

  MkSymb s = s ;

  BaseSymb = infixSS "και" ; 
  ConsSymb = infixSS "," ;

}