mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Add support for SOFT_BIND (which PGF runtime doesn't support)
This commit is contained in:
@@ -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" ->
|
||||
|
||||
@@ -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 ;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
FtoS f1
|
||||
FtoS f2
|
||||
f1
|
||||
f2
|
||||
concat f1 f2
|
||||
bind f1 f2
|
||||
softbind f1 f2
|
||||
|
||||
@@ -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) ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user