Add support for SOFT_BIND (which PGF runtime doesn't support)

This commit is contained in:
John J. Camilleri
2021-02-16 14:51:29 +01:00
parent 4d1217b06d
commit 23e49cddb7
5 changed files with 29 additions and 15 deletions

View File

@@ -92,7 +92,7 @@ mkCanon2lpgf opts gr am = do
C.PredefValue (C.PredefId pid) -> case pid of
"BIND" -> return L.LFBind
-- "SOFT_BIND" ->
"SOFT_BIND" -> return L.LFBind
-- "SOFT_SPACE" ->
-- "CAPIT" ->
-- "ALL_CAPIT" ->

View File

@@ -1,7 +1,9 @@
abstract Bind = {
cat S ; F ;
cat S ;
fun
FtoS : F -> S ;
f1 : F ;
f2 : F ;
f1 : S ;
f2 : S ;
concat : S -> S -> S ;
bind : S -> S -> S ;
softbind : S -> S -> S ;
}

View File

@@ -1,6 +1,14 @@
Bind: FtoS f1
Bind: f1
BindCnc: hello there
Bind: FtoS f2
BindCnc: good bye
Bind: f2
BindCnc: goodbye
Bind: concat f1 f2
BindCnc: hello there goodbye
Bind: bind f1 f2
BindCnc: hello theregoodbye
Bind: softbind f1 f2
BindCnc: hello theregoodbye

View File

@@ -1,2 +1,5 @@
FtoS f1
FtoS f2
f1
f2
concat f1 f2
bind f1 f2
softbind f1 f2

View File

@@ -1,9 +1,10 @@
concrete BindCnc of Bind = open Prelude in {
lincat
S = Str ;
F = { s : Str } ;
S = SS ;
lin
f1 = { s = "hello the" ++ BIND ++ "re" } ;
f2 = { s = "good" ++ "bye" } ;
FtoS f = f.s ;
f1 = ss ("hello the" ++ BIND ++ "re") ;
f2 = ss ("good" ++ SOFT_BIND ++ "bye") ;
concat a b = ss (a.s ++ b.s) ;
bind a b = ss (a.s ++ BIND ++ b.s) ;
softbind a b = ss (a.s ++ SOFT_BIND ++ b.s) ;
}