Meta variables are now treated as functions with name ? in SISR, VoiceXML and JavaScript linearization. VoiceXML now returns the partial result when update() is false.

This commit is contained in:
bringert
2006-12-21 16:48:46 +00:00
parent 51df5b8a8d
commit a335b29c0a
11 changed files with 178 additions and 88 deletions

View File

@@ -54,6 +54,7 @@ data CFTerm
| CFRes Int
| CFVar Int
| CFConst String
| CFMeta
deriving (Eq,Show)
type Cat_ = String
@@ -69,7 +70,7 @@ cfgToCFRules cfg =
where symb = mapSymbol catToString id
catToString = prt
nameToTerm (Name f prs) = CFObj f (map profileToTerm prs)
profileToTerm (Unify []) = CFConst "?"
profileToTerm (Unify []) = CFMeta
profileToTerm (Unify xs) = CFRes (last xs) -- FIXME: unify
profileToTerm (Constant f) = CFConst (maybe "?" prIdent (forestName f))