primitive hack to support TYPE::allInstances()

git-svn-id: https://projects.brucker.ch/su4sml/svn/infsec-import/trunk/src/su4sml@5455 3260e6d1-4efc-4170-b0a7-36055960796d
This commit is contained in:
Jürgen Doser 2006-10-19 13:33:02 +00:00
parent 3ba0df156e
commit c475221df5
1 changed files with 10 additions and 2 deletions

View File

@ -261,8 +261,16 @@ fun mkOCLExpression (tree as Node(("UML15OCL.Expressions.BooleanLiteralExp",atts
}
| mkOCLExpression (tree as Node(("UML15OCL.Expressions.OperationCallExp",atts),_))
= XMI.OperationCallExp
{ source = tree |> get_one "OCL.Expressions.PropertyCallExp.source"
|> mkOCLExpression,
{ source = (tree |> get_one "OCL.Expressions.PropertyCallExp.source"
|> mkOCLExpression)
(* This hack is necessary to support TYPE::allInstances() as parsed *)
(* by dresden-ocl. *)
handle IllFormed msg =>
XMI.LiteralExp
{ symbol = "",
expression_type = tree |> get_one "OCL.Expressions.FeatureCallExp.srcType"
|> xmiidref
},
arguments = tree |> get "OCL.Expressions.OperationCallExp.arguments"
|> map mkOCLExpression,
referredOperation = tree |> xmiidref_to "OCL.Expressions.OperationCallExp.referredOperation",