11package com.github.tukcps.sysmd.compiler.semantics.kerml
22
3+ import com.github.tukcps.sysmd.compiler.semantics.ActionsContext
4+ // import com.github.tukcps.sysmd.compiler.semantics.ActionsContextImplementation
35import com.github.tukcps.sysmd.model.expression.AstNode
6+ import com.github.tukcps.sysmd.model.expression.AstRoot
7+ import com.github.tukcps.sysmd.model.expression.ConstructorExpression
8+ import com.github.tukcps.sysmd.model.expression.Expression
9+ import com.github.tukcps.sysmd.model.expression.InstantiationExpression
10+ import com.github.tukcps.sysmd.model.expression.InvocationExpression
11+ import com.github.tukcps.sysmd.model.expression.OperatorExpression
412import com.github.tukcps.sysmd.model.expression.functions.AstIte
5- import com.github.tukcps.sysmd.compiler.semantics.ActionsContext
13+ import com.github.tukcps.sysmd.model.util.SimpleName
14+
15+ // import com.github.tukcps.sysmd.compiler.semantics.ActionsContext
616
717/* *
818 * Generates an ITE-Statement from an if-else expression.
@@ -17,3 +27,59 @@ class ConditionalExpressionActions(
1727 return AstIte (context.model, arrayListOf (condExpr!! , thenExpr!! , elseExpr!! ))
1828 }
1929}
30+
31+ open class ExpressionActions <T : Expression >(
32+ context : ActionsContext ,
33+ creator : (SimpleName ? , SimpleName ? ) -> T ,
34+ defaultType : String = " Base::Anything" ,
35+ valuePart : AstRoot ? = null
36+ // production: FeatureActions<T>.() -> Unit,
37+ ): FeatureActions<T>(context, creator, defaultType, valuePart
38+ ) {
39+ // TODO!
40+ }
41+
42+ // Base semantic functions for Constructor- and Operator(Invocation)Expressions
43+ abstract class InstantiationExpressionActions <T : InstantiationExpression >(
44+ context : ActionsContext ,
45+ creator : (SimpleName ? , SimpleName ? ) -> T ,
46+ defaultType : String = " Base::Anything" ,
47+ valuePart : AstRoot ? = null
48+ // production: FeatureActions<T>.() -> Unit,
49+ ): FeatureActions<T>(context, creator, defaultType, valuePart
50+ ) {
51+ // TODO!
52+ }
53+
54+ open class ConstructorExpressionActions <T : ConstructorExpression >(
55+ context : ActionsContext ,
56+ creator : (SimpleName ? , SimpleName ? ) -> T ,
57+ defaultType : String = " Base::Anything" ,
58+ valuePart : AstRoot ? = null
59+ // production: FeatureActions<T>.() -> Unit,
60+ ): FeatureActions<T>(context, creator, defaultType, valuePart
61+ ) {
62+ // TODO!
63+ }
64+
65+ open class InvocationExpressionActions <T : InvocationExpression >(
66+ context : ActionsContext ,
67+ creator : (SimpleName ? , SimpleName ? ) -> T ,
68+ defaultType : String = " Base::Anything" ,
69+ valuePart : AstRoot ? = null
70+ // production: FeatureActions<T>.() -> Unit,
71+ ): FeatureActions<T>(context, creator, defaultType, valuePart
72+ ) {
73+ // TODO!
74+ }
75+
76+ open class OperatorExpressionActions <T : OperatorExpression >(
77+ context : ActionsContext ,
78+ creator : (SimpleName ? , SimpleName ? ) -> T ,
79+ defaultType : String = " Base::Anything" ,
80+ valuePart : AstRoot ? = null
81+ // production: FeatureActions<T>.() -> Unit,
82+ ): FeatureActions<T>(context, creator, defaultType, valuePart
83+ ) {
84+ // TODO!
85+ }
0 commit comments