From 8e780d626368a352ff4acb237849bfe8b8049a57 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 24 Feb 2026 08:54:13 +0100 Subject: [PATCH] use mair/maist for comparison --- src/scots/AdjectiveSco.gf | 12 +++++++++++- src/scots/DocumentationSco.gf | 17 ++++++++++++++++- src/scots/NounSco.gf | 5 ++++- src/scots/ResSco.gf | 11 ++++++++++- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/scots/AdjectiveSco.gf b/src/scots/AdjectiveSco.gf index 308931f0..0283117f 100644 --- a/src/scots/AdjectiveSco.gf +++ b/src/scots/AdjectiveSco.gf @@ -1,2 +1,12 @@ -concrete AdjectiveSco of Adjective = AdjectiveEng ** { +concrete AdjectiveSco of Adjective = AdjectiveEng - [ComparA,UseComparA] ** open Prelude, ResSco in { + +lin ComparA a np = { + s = \\_ => getCompar Nom a ++ "than" ++ np.s ! npNom ; + isPre = False + } ; + UseComparA a = { + s = \\_ => getCompar Nom a ; + isPre = a.isPre + } ; + } diff --git a/src/scots/DocumentationSco.gf b/src/scots/DocumentationSco.gf index 587d67e6..6f0b1438 100644 --- a/src/scots/DocumentationSco.gf +++ b/src/scots/DocumentationSco.gf @@ -1,3 +1,18 @@ --# -path=.:../abstract:../common -concrete DocumentationSco of Documentation = DocumentationEng ** { +concrete DocumentationSco of Documentation = DocumentationEng - [InflectionA, InflectionA2] ** open ResSco, HTML in { + +lin + InflectionA, InflectionA2 = \adj -> { + t = "a" ; + s1 = heading1 "Adjective" ; + s2 = frameTable ( + tr (th "" ++ th "nom" ++ th "gen") ++ + tr (th "posit" ++ td (adj.s ! AAdj Posit Nom) ++ td (adj.s ! AAdj Posit Gen)) ++ + tr (th "compar" ++ td (getCompar Nom adj) ++ td (getCompar Gen adj)) ++ + tr (th "superl" ++ td (getSuperl Nom adj) ++ td (getSuperl Gen adj)) + ) ++ + heading1 "Adverb" ++ + paragraph (adj.s ! AAdv) + } ; + } diff --git a/src/scots/NounSco.gf b/src/scots/NounSco.gf index 30c8fc50..34555309 100644 --- a/src/scots/NounSco.gf +++ b/src/scots/NounSco.gf @@ -1,4 +1,4 @@ -concrete NounSco of Noun = NounEng - [IndefArt] ** open Prelude, ResSco in { +concrete NounSco of Noun = NounEng - [IndefArt, OrdSuperl, OrdNumeralSuperl] ** open Prelude, ResSco in { lin IndefArt = { s = \\hasCard,n => case of { @@ -13,4 +13,7 @@ lin IndefArt = { isDef = False } ; + OrdSuperl a = {s = \\c => getSuperl c a} ; + + OrdNumeralSuperl n a = {s = \\c => n.s ! True ! NOrd ! Nom ++ getSuperl c a} ; } diff --git a/src/scots/ResSco.gf b/src/scots/ResSco.gf index 7e4d8c48..be21c22a 100644 --- a/src/scots/ResSco.gf +++ b/src/scots/ResSco.gf @@ -1,6 +1,15 @@ -resource ResSco = ResEng - [auxBe,posneg] ** { +resource ResSco = ResEng - [getCompar,getSuperl,auxBe,posneg] ** { oper + getCompar : Case -> Adjective -> Str = \c,a -> case a.isMost of { + True => "mair" ++ a.s ! AAdj Posit c ; + False => a.s ! AAdj Compar c + } ; + getSuperl : Case -> Adjective -> Str = \c,a -> case a.isMost of { + True => "maist" ++ a.s ! AAdj Posit c ; + False => a.s ! AAdj Superl c + } ; + auxBe : Aux = { pres = \\b,a => case of { => "am" ;