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 5eb3e7032a
commit 95d4af1f2d
12 changed files with 202 additions and 101 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))