Phase1Example working on choosing from enum

This commit is contained in:
Bill
2026-02-05 17:13:06 -07:00
parent a803676f0d
commit 9b420ba658
4 changed files with 577 additions and 422 deletions

View File

@@ -8,41 +8,39 @@
<imports />
<registry>
<language id="a452e1cf-6f8c-4bca-8447-fd4d6e4d0003" name="SemAnno">
<concept id="8440420766104857128" name="SemAnno.structure.Module" flags="ng" index="Module_1">
<child id="8982541288447632590" name="variables" index="Module_v" />
<child id="8982541288447632589" name="functions" index="Module_f" />
<concept id="8982541288447632700" name="SemAnno.structure.Variable" flags="ng" index="2EAK29">
<child id="8982541288447632702" name="type" index="2EAK2b" />
</concept>
<concept id="8440420766104857192" name="SemAnno.structure.Function" flags="ng" index="Func_1">
<child id="8982541288447632623" name="parameters" index="Func_p" />
<child id="8982541288447632622" name="body" index="Func_b" />
<reference id="8982541288447632621" name="returnType" index="Func_rt" />
<concept id="8982541288447632652" name="SemAnno.structure.VariableReference" flags="ng" index="2EAK2T">
<property id="8982541288447632653" name="variableName" index="2EAK2S" />
</concept>
<concept id="8440420766104857256" name="SemAnno.structure.Parameter" flags="ng" index="Param_1">
<reference id="8982541288447632653" name="type" index="Param_t" />
<concept id="8982541288447632557" name="SemAnno.structure.BinaryOperation" flags="ng" index="2EAK4o">
<property id="8982541288447632558" name="operator" index="2EAK4r" />
<child id="8982541288447632560" name="right" index="2EAK45" />
<child id="8982541288447632559" name="left" index="2EAK4q" />
</concept>
<concept id="8982541288447632700" name="SemAnno.structure.Variable" flags="ng" index="Var_1" />
<concept id="8982541288447632333" name="SemAnno.structure.Block" flags="ng" index="Block_1">
<child id="8982541288447632334" name="statements" index="Block_s" />
<concept id="8982541288447632492" name="SemAnno.structure.Return" flags="ng" index="2EAK7p">
<child id="8982541288447632493" name="value" index="2EAK7o" />
</concept>
<concept id="8440420766104853160" name="SemAnno.structure.Assignment" flags="ng" index="Assign_1">
<reference id="8982541288447632365" name="target" index="Assign_t" />
<reference id="8982541288447632366" name="value" index="Assign_v" />
<concept id="8440420766104844840" name="SemAnno.structure.PrimitiveType" flags="ng" index="3rC1Zv">
<property id="8982541288447632334" name="kind" index="2EAKpV" />
</concept>
<concept id="8982541288447632557" name="SemAnno.structure.BinaryOperation" flags="ng" index="BinOp_1">
<reference id="8982541288447632559" name="left" index="BinOp_l" />
<reference id="8982541288447632560" name="right" index="BinOp_r" />
<concept id="8440420766104857256" name="SemAnno.structure.Parameter" flags="ng" index="3rCcXv">
<child id="8982541288447632653" name="type" index="2EAK2S" />
</concept>
<concept id="8982541288447632652" name="SemAnno.structure.VariableReference" flags="ng" index="VarRef_1">
<property id="8982541288447632653" name="variableName" index="VarRef_n" />
<concept id="8440420766104857192" name="SemAnno.structure.Function" flags="ng" index="3rCcYv">
<child id="8982541288447632621" name="returnType" index="2EAK5o" />
<child id="8982541288447632623" name="parameters" index="2EAK5q" />
<child id="8982541288447632622" name="body" index="2EAK5r" />
</concept>
<concept id="8982541288447632492" name="SemAnno.structure.Return" flags="ng" index="Return_1">
<reference id="8982541288447632493" name="value" index="Return_v" />
<concept id="8440420766104857128" name="SemAnno.structure.Module" flags="ng" index="3rCcZv">
<property id="8982541288447632592" name="targetLanguage" index="2EAK5_" />
<child id="8982541288447632589" name="functions" index="2EAK5S" />
<child id="8982541288447632590" name="variables" index="2EAK5V" />
</concept>
<concept id="8440420766104844840" name="SemAnno.structure.PrimitiveType" flags="ng" index="PrimT_1">
<property id="8982541288447632334" name="kind" index="PrimT_k" />
</concept>
<concept id="8440420766104853480" name="SemAnno.structure.ExpressionStatement" flags="ng" index="ExprStmt_1">
<reference id="8982541288447632525" name="expression" index="ExprStmt_e" />
<concept id="8440420766104853160" name="SemAnno.structure.Assignment" flags="ng" index="3rCfXv">
<child id="8982541288447632365" name="target" index="2EAKpo" />
<child id="8982541288447632366" name="value" index="2EAKpr" />
</concept>
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
@@ -51,105 +49,84 @@
</concept>
</language>
</registry>
<!-- Shared Type nodes (referenced by parameters and functions) -->
<node concept="PrimT_1" id="Type_Int">
<property role="PrimT_k" value="int" />
</node>
<!-- Calculator Module -->
<node concept="Module_1" id="Calc_M001">
<node concept="3rCcZv" id="Calc_M001">
<property role="TrG5h" value="Calculator" />
<!-- Variable: PI -->
<node concept="Var_1" id="Calc_V001" role="Module_v">
<property role="2EAK5_" value="c" />
<node concept="2EAK29" id="Calc_V001" role="2EAK5V">
<property role="TrG5h" value="PI" />
<node concept="3rC1Zv" id="Calc_VT001" role="2EAK2b">
<property role="2EAKpV" value="float" />
</node>
<!-- Function: add(x, y) -->
<node concept="Func_1" id="Calc_F001" role="Module_f">
</node>
<node concept="3rCcYv" id="Calc_F001" role="2EAK5S">
<property role="TrG5h" value="add" />
<ref role="Func_rt" node="Type_Int" />
<!-- Parameter x -->
<node concept="Param_1" id="Calc_P001" role="Func_p">
<node concept="3rC1Zv" id="Calc_RT001" role="2EAK5o">
<property role="2EAKpV" value="int" />
</node>
<node concept="3rCcXv" id="Calc_P001" role="2EAK5q">
<property role="TrG5h" value="x" />
<ref role="Param_t" node="Type_Int" />
<node concept="3rC1Zv" id="Calc_PT001" role="2EAK2S">
<property role="2EAKpV" value="int" />
</node>
<!-- Parameter y -->
<node concept="Param_1" id="Calc_P002" role="Func_p">
</node>
<node concept="3rCcXv" id="Calc_P002" role="2EAK5q">
<property role="TrG5h" value="y" />
<ref role="Param_t" node="Type_Int" />
</node>
<!-- Body -->
<node concept="Block_1" id="Calc_B001" role="Func_b">
<!-- result = x + y -->
<node concept="Assign_1" id="Calc_A001" role="Block_s">
<ref role="Assign_t" node="Calc_VR_result" />
<ref role="Assign_v" node="Calc_E001" />
</node>
<!-- return result -->
<node concept="Return_1" id="Calc_R001" role="Block_s">
<ref role="Return_v" node="Calc_VR_return" />
<node concept="3rC1Zv" id="Calc_PT002" role="2EAK2S">
<property role="2EAKpV" value="int" />
</node>
</node>
<!-- Expression nodes for add function -->
<node concept="VarRef_1" id="Calc_VR_result">
<property role="VarRef_n" value="result" />
<node concept="3rCfXv" id="Calc_A001" role="2EAK5r">
<property role="TrG5h" value="result" />
<node concept="2EAK2T" id="c_VR_result" role="2EAKpo">
<property role="2EAK2S" value="result" />
</node>
<node concept="BinOp_1" id="Calc_E001">
<ref role="BinOp_l" node="Calc_VR_x" />
<ref role="BinOp_r" node="Calc_VR_y" />
<node concept="2EAK4o" id="Calc_E001" role="2EAKpr">
<property role="TrG5h" value="+" />
<property role="2EAK4r" value="+" />
<node concept="2EAK2T" id="Calc_VR_x" role="2EAK4q">
<property role="2EAK2S" value="x" />
</node>
<node concept="VarRef_1" id="Calc_VR_x">
<property role="VarRef_n" value="x" />
</node>
<node concept="VarRef_1" id="Calc_VR_y">
<property role="VarRef_n" value="y" />
</node>
<node concept="VarRef_1" id="Calc_VR_return">
<property role="VarRef_n" value="result" />
<node concept="2EAK2T" id="Calc_VR_y" role="2EAK45">
<property role="2EAK2S" value="y" />
</node>
</node>
<!-- Function: multiply(a, b) -->
<node concept="Func_1" id="Calc_F002" role="Module_f">
</node>
<node concept="2EAK7p" id="Calc_R001" role="2EAK5r">
<node concept="2EAK2T" id="c_VR_return" role="2EAK7o">
<property role="2EAK2S" value="result" />
</node>
</node>
</node>
<node concept="3rCcYv" id="Calc_F002" role="2EAK5S">
<property role="TrG5h" value="multiply" />
<ref role="Func_rt" node="Type_Int" />
<!-- Parameter a -->
<node concept="Param_1" id="Calc_P003" role="Func_p">
<node concept="3rC1Zv" id="Calc_RT002" role="2EAK5o">
<property role="2EAKpV" value="int" />
</node>
<node concept="3rCcXv" id="Calc_P003" role="2EAK5q">
<property role="TrG5h" value="a" />
<ref role="Param_t" node="Type_Int" />
<node concept="3rC1Zv" id="Calc_PT003" role="2EAK2S">
<property role="2EAKpV" value="int" />
</node>
<!-- Parameter b -->
<node concept="Param_1" id="Calc_P004" role="Func_p">
</node>
<node concept="3rCcXv" id="Calc_P004" role="2EAK5q">
<property role="TrG5h" value="b" />
<ref role="Param_t" node="Type_Int" />
</node>
<!-- Body with ExpressionStatement wrapping BinaryOperation -->
<node concept="Block_1" id="Calc_B002" role="Func_b">
<node concept="ExprStmt_1" id="Calc_ES001" role="Block_s">
<ref role="ExprStmt_e" node="Calc_E005" />
<node concept="3rC1Zv" id="Calc_PT004" role="2EAK2S">
<property role="2EAKpV" value="int" />
</node>
</node>
<!-- Expression nodes for multiply function -->
<node concept="BinOp_1" id="Calc_E005">
<ref role="BinOp_l" node="Calc_VR_a" />
<ref role="BinOp_r" node="Calc_VR_b" />
<node concept="2EAK7p" id="Calc_R002" role="2EAK5r">
<node concept="2EAK4o" id="Calc_E005" role="2EAK7o">
<property role="TrG5h" value="*" />
<property role="2EAK4r" value="*" />
<node concept="2EAK2T" id="Calc_VR_a" role="2EAK4q">
<property role="2EAK2S" value="a" />
</node>
<node concept="2EAK2T" id="Calc_VR_b" role="2EAK45">
<property role="2EAK2S" value="b" />
</node>
<node concept="VarRef_1" id="Calc_VR_a">
<property role="VarRef_n" value="a" />
</node>
<node concept="VarRef_1" id="Calc_VR_b">
<property role="VarRef_n" value="b" />
</node>
</node>
</node>
</model>

View File

@@ -123,21 +123,41 @@
<property role="3F0ifm" value="{content}" />
</node>
</node>
<!-- Phase 1: Core AST Structure Editors (31 concepts) -->
<!-- Module Editor: module [name] with functions/variables -->
<node concept="24kQdi" id="Ed_10001">
<ref role="1XX52x" to="k8se:7kypvuIwECC" resolve="Module" />
<node concept="3EZMnI" id="Ed_10002" role="2wV5jI">
<node concept="2iRfu4" id="Ed_10003" role="2iSdaV" />
<node concept="2iRkQZ" id="Ed_10002b" role="2iSdaV" />
<node concept="3EZMnI" id="Ed_10002c" role="3EZMnx">
<node concept="2iRfu4" id="Ed_10002d" role="2iSdaV" />
<node concept="3F0ifn" id="Ed_10004" role="3EZMnx">
<property role="3F0ifm" value="Module: " />
</node>
<node concept="3F0A7n" id="Ed_10004b" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
<node concept="3EZMnI" id="Ed_10004c" role="3EZMnx">
<node concept="2iRfu4" id="Ed_10004d" role="2iSdaV" />
<node concept="3F0ifn" id="Ed_10004e" role="3EZMnx">
<property role="3F0ifm" value="Target: " />
</node>
<node concept="3F0A7n" id="Ed_10004f" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwECI" resolve="targetLanguage" />
</node>
<node concept="3F0ifn" id="Ed_10004g" role="3EZMnx">
<property role="3F0ifm" value="(python | cpp | empty=both)" />
</node>
</node>
<node concept="3F2HdR" id="Ed_10004h" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwECG" resolve="variables" />
<node concept="2iRkQZ" id="Ed_10004i" role="2czzBx" />
</node>
<node concept="3F2HdR" id="Ed_10004j" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwECF" resolve="functions" />
<node concept="2iRkQZ" id="Ed_10004k" role="2czzBx" />
</node>
</node>
</node>
<!-- Function Editor: def [name]([params]) -> [type]: -->
<node concept="24kQdi" id="Ed_10005">
<ref role="1XX52x" to="k8se:7kypvuIwEDC" resolve="Function" />
<node concept="3EZMnI" id="Ed_10006" role="2wV5jI">
@@ -147,8 +167,6 @@
</node>
</node>
</node>
<!-- Parameter Editor: [name]: [type] -->
<node concept="24kQdi" id="Ed_10009">
<ref role="1XX52x" to="k8se:7kypvuIwEEC" resolve="Parameter" />
<node concept="3EZMnI" id="Ed_10010" role="2wV5jI">
@@ -158,8 +176,6 @@
</node>
</node>
</node>
<!-- Variable Editor: [name]: [type] -->
<node concept="24kQdi" id="Ed_10013">
<ref role="1XX52x" to="k8se:7kypvuIwEFC" resolve="Variable" />
<node concept="3EZMnI" id="Ed_10014" role="2wV5jI">
@@ -169,8 +185,6 @@
</node>
</node>
</node>
<!-- Block Editor: statements list -->
<node concept="24kQdi" id="Ed_10017">
<ref role="1XX52x" to="k8se:7kypvuIwDDD" resolve="Block" />
<node concept="3EZMnI" id="Ed_10018" role="2wV5jI">
@@ -180,8 +194,6 @@
</node>
</node>
</node>
<!-- Assignment Editor: [target] = [value] -->
<node concept="24kQdi" id="Ed_10021">
<ref role="1XX52x" to="k8se:7kypvuIwDEC" resolve="Assignment" />
<node concept="3EZMnI" id="Ed_10022" role="2wV5jI">
@@ -191,8 +203,6 @@
</node>
</node>
</node>
<!-- IfStatement Editor: if [condition]: [then] else: [else] -->
<node concept="24kQdi" id="Ed_10025">
<ref role="1XX52x" to="k8se:7kypvuIwDFC" resolve="IfStatement" />
<node concept="3EZMnI" id="Ed_10026" role="2wV5jI">
@@ -202,8 +212,6 @@
</node>
</node>
</node>
<!-- WhileLoop Editor: while [condition]: [body] -->
<node concept="24kQdi" id="Ed_10029">
<ref role="1XX52x" to="k8se:7kypvuIwDGC" resolve="WhileLoop" />
<node concept="3EZMnI" id="Ed_10030" role="2wV5jI">
@@ -213,8 +221,6 @@
</node>
</node>
</node>
<!-- ForLoop Editor: for [iterator] in [iterable]: [body] -->
<node concept="24kQdi" id="Ed_10033">
<ref role="1XX52x" to="k8se:7kypvuIwDHC" resolve="ForLoop" />
<node concept="3EZMnI" id="Ed_10034" role="2wV5jI">
@@ -224,8 +230,6 @@
</node>
</node>
</node>
<!-- Return Editor: return [value] -->
<node concept="24kQdi" id="Ed_10037">
<ref role="1XX52x" to="k8se:7kypvuIwDIC" resolve="Return" />
<node concept="3EZMnI" id="Ed_10038" role="2wV5jI">
@@ -235,8 +239,6 @@
</node>
</node>
</node>
<!-- ExpressionStatement Editor: [expression] -->
<node concept="24kQdi" id="Ed_10041">
<ref role="1XX52x" to="k8se:7kypvuIwDJC" resolve="ExpressionStatement" />
<node concept="3EZMnI" id="Ed_10042" role="2wV5jI">
@@ -246,8 +248,6 @@
</node>
</node>
</node>
<!-- BinaryOperation Editor: [left] [op] [right] -->
<node concept="24kQdi" id="Ed_10045">
<ref role="1XX52x" to="k8se:4ypvuIwCIC2" resolve="BinaryOperation" />
<node concept="3EZMnI" id="Ed_10046" role="2wV5jI">
@@ -257,8 +257,6 @@
</node>
</node>
</node>
<!-- UnaryOperation Editor: [op][operand] -->
<node concept="24kQdi" id="Ed_10049">
<ref role="1XX52x" to="k8se:7kypvuIwCJC" resolve="UnaryOperation" />
<node concept="3EZMnI" id="Ed_10050" role="2wV5jI">
@@ -268,8 +266,6 @@
</node>
</node>
</node>
<!-- FunctionCall Editor: [name]([args]) -->
<node concept="24kQdi" id="Ed_10053">
<ref role="1XX52x" to="k8se:7kypvuIwCLC" resolve="FunctionCall" />
<node concept="3EZMnI" id="Ed_10054" role="2wV5jI">
@@ -279,8 +275,6 @@
</node>
</node>
</node>
<!-- VariableReference Editor: [name] -->
<node concept="24kQdi" id="Ed_10057">
<ref role="1XX52x" to="k8se:7kypvuIwCKC" resolve="VariableReference" />
<node concept="3EZMnI" id="Ed_10058" role="2wV5jI">
@@ -290,8 +284,6 @@
</node>
</node>
</node>
<!-- IntegerLiteral Editor: [value] -->
<node concept="24kQdi" id="Ed_10061">
<ref role="1XX52x" to="k8se:7kypvuIwCDC" resolve="IntegerLiteral" />
<node concept="3EZMnI" id="Ed_10062" role="2wV5jI">
@@ -301,8 +293,6 @@
</node>
</node>
</node>
<!-- FloatLiteral Editor: [value] -->
<node concept="24kQdi" id="Ed_10065">
<ref role="1XX52x" to="k8se:7kypvuIwCEC" resolve="FloatLiteral" />
<node concept="3EZMnI" id="Ed_10066" role="2wV5jI">
@@ -312,8 +302,6 @@
</node>
</node>
</node>
<!-- StringLiteral Editor: "[value]" -->
<node concept="24kQdi" id="Ed_10069">
<ref role="1XX52x" to="k8se:7kypvuIwCFC" resolve="StringLiteral" />
<node concept="3EZMnI" id="Ed_10070" role="2wV5jI">
@@ -323,8 +311,6 @@
</node>
</node>
</node>
<!-- BooleanLiteral Editor: [value] -->
<node concept="24kQdi" id="Ed_10073">
<ref role="1XX52x" to="k8se:7kypvuIwCGC" resolve="BooleanLiteral" />
<node concept="3EZMnI" id="Ed_10074" role="2wV5jI">
@@ -334,8 +320,6 @@
</node>
</node>
</node>
<!-- NullLiteral Editor: null -->
<node concept="24kQdi" id="Ed_10077">
<ref role="1XX52x" to="k8se:7kypvuIwCHC" resolve="NullLiteral" />
<node concept="3EZMnI" id="Ed_10078" role="2wV5jI">
@@ -345,8 +329,6 @@
</node>
</node>
</node>
<!-- ListLiteral Editor: [elements] -->
<node concept="24kQdi" id="Ed_10081">
<ref role="1XX52x" to="k8se:7kypvuIwCMC" resolve="ListLiteral" />
<node concept="3EZMnI" id="Ed_10082" role="2wV5jI">
@@ -356,8 +338,6 @@
</node>
</node>
</node>
<!-- IndexAccess Editor: [target][[index]] -->
<node concept="24kQdi" id="Ed_10085">
<ref role="1XX52x" to="k8se:7kypvuIwCNC" resolve="IndexAccess" />
<node concept="3EZMnI" id="Ed_10086" role="2wV5jI">
@@ -367,8 +347,6 @@
</node>
</node>
</node>
<!-- MemberAccess Editor: [target].[member] -->
<node concept="24kQdi" id="Ed_10089">
<ref role="1XX52x" to="k8se:7kypvuIwCOC" resolve="MemberAccess" />
<node concept="3EZMnI" id="Ed_10090" role="2wV5jI">
@@ -378,8 +356,6 @@
</node>
</node>
</node>
<!-- PrimitiveType Editor: [kind] -->
<node concept="24kQdi" id="Ed_10093">
<ref role="1XX52x" to="k8se:7kypvuIwBCC" resolve="PrimitiveType" />
<node concept="3EZMnI" id="Ed_10094" role="2wV5jI">
@@ -389,8 +365,6 @@
</node>
</node>
</node>
<!-- ListType Editor: list[[elementType]] -->
<node concept="24kQdi" id="Ed_10097">
<ref role="1XX52x" to="k8se:7kypvuIwBDC" resolve="ListType" />
<node concept="3EZMnI" id="Ed_10098" role="2wV5jI">
@@ -400,8 +374,6 @@
</node>
</node>
</node>
<!-- SetType Editor: set[[elementType]] -->
<node concept="24kQdi" id="Ed_10101">
<ref role="1XX52x" to="k8se:7kypvuIwBGC" resolve="SetType" />
<node concept="3EZMnI" id="Ed_10102" role="2wV5jI">
@@ -411,8 +383,6 @@
</node>
</node>
</node>
<!-- MapType Editor: map[[keyType], [valueType]] -->
<node concept="24kQdi" id="Ed_10105">
<ref role="1XX52x" to="k8se:7kypvuIwBEC" resolve="MapType" />
<node concept="3EZMnI" id="Ed_10106" role="2wV5jI">
@@ -422,8 +392,6 @@
</node>
</node>
</node>
<!-- TupleType Editor: tuple[[elementTypes]] -->
<node concept="24kQdi" id="Ed_10109">
<ref role="1XX52x" to="k8se:7kypvuIwBHC" resolve="TupleType" />
<node concept="3EZMnI" id="Ed_10110" role="2wV5jI">
@@ -433,8 +401,6 @@
</node>
</node>
</node>
<!-- ArrayType Editor: [elementType][[size]] -->
<node concept="24kQdi" id="Ed_10113">
<ref role="1XX52x" to="k8se:7kypvuIwBIC" resolve="ArrayType" />
<node concept="3EZMnI" id="Ed_10114" role="2wV5jI">
@@ -444,8 +410,6 @@
</node>
</node>
</node>
<!-- OptionalType Editor: optional[[innerType]] -->
<node concept="24kQdi" id="Ed_10117">
<ref role="1XX52x" to="k8se:7kypvuIwBFC" resolve="OptionalType" />
<node concept="3EZMnI" id="Ed_10118" role="2wV5jI">
@@ -455,8 +419,6 @@
</node>
</node>
</node>
<!-- CustomType Editor: [typeName] -->
<node concept="24kQdi" id="Ed_10121">
<ref role="1XX52x" to="k8se:7kypvuIwBJC" resolve="CustomType" />
<node concept="3EZMnI" id="Ed_10122" role="2wV5jI">

View File

@@ -9,6 +9,15 @@
</imports>
<registry>
<language id="c72da2b9-7cce-4447-8389-f407dc1158b7" name="jetbrains.mps.lang.structure">
<concept id="3348158742936976480" name="jetbrains.mps.lang.structure.structure.EnumerationMemberDeclaration" flags="ng" index="25R33">
<property id="1421157252384165432" name="memberId" index="3tVfz5" />
</concept>
<concept id="3348158742936976479" name="jetbrains.mps.lang.structure.structure.EnumerationDeclaration" flags="ng" index="25R3W">
<child id="3348158742936976577" name="members" index="25R1y" />
</concept>
<concept id="1082978164218" name="jetbrains.mps.lang.structure.structure.DataTypeDeclaration" flags="ng" index="AxPO6">
<property id="7791109065626895363" name="datatypeId" index="3F6X1D" />
</concept>
<concept id="1169125787135" name="jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration" flags="ig" index="PkWjJ">
<property id="6714410169261853888" name="conceptId" index="EcuMT" />
<property id="4628067390765956802" name="abstract" index="R5$K7" />
@@ -160,6 +169,11 @@
<node concept="PrWs8" id="7kypvuIwECD" role="PzmwI">
<ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
</node>
<node concept="1TJgyi" id="7kypvuIwECI" role="1TKVEl">
<property role="IQ2nx" value="8982541288447632592" />
<property role="TrG5h" value="targetLanguage" />
<ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
</node>
<node concept="1TJgyj" id="7kypvuIwECH" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632591" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
@@ -205,7 +219,7 @@
</node>
<node concept="1TJgyj" id="7kypvuIwEDG" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632621" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="returnType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
@@ -227,14 +241,14 @@
</node>
<node concept="1TJgyj" id="7kypvuIwEEE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632653" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="type" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
</node>
<node concept="1TJgyj" id="7kypvuIwEEF" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632654" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="defaultValue" />
<property role="20lbJX" value="fLJekj5/_0__1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -249,14 +263,14 @@
</node>
<node concept="1TJgyj" id="7kypvuIwEFF" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632702" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="type" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
</node>
<node concept="1TJgyj" id="7kypvuIwEFG" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632703" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="initializer" />
<property role="20lbJX" value="fLJekj5/_0__1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -293,14 +307,14 @@
<ref role="1TJDcQ" node="7kypvuIwDDC" resolve="Statement" />
<node concept="1TJgyj" id="7kypvuIwDED" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632365" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="target" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
</node>
<node concept="1TJgyj" id="7kypvuIwDEE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632366" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="value" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -315,7 +329,7 @@
<ref role="1TJDcQ" node="7kypvuIwDDC" resolve="Statement" />
<node concept="1TJgyj" id="7kypvuIwDFD" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632397" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="condition" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -341,7 +355,7 @@
<ref role="1TJDcQ" node="7kypvuIwDDC" resolve="Statement" />
<node concept="1TJgyj" id="7kypvuIwDGD" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632429" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="condition" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -365,7 +379,7 @@
</node>
<node concept="1TJgyj" id="7kypvuIwDHE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632462" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="iterable" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -384,7 +398,7 @@
<ref role="1TJDcQ" node="7kypvuIwDDC" resolve="Statement" />
<node concept="1TJgyj" id="7kypvuIwDID" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632493" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="value" />
<property role="20lbJX" value="fLJekj5/_0__1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -396,7 +410,7 @@
<ref role="1TJDcQ" node="7kypvuIwDDC" resolve="Statement" />
<node concept="1TJgyj" id="7kypvuIwDJD" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632525" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="expression" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -419,14 +433,14 @@
</node>
<node concept="1TJgyj" id="7kypvuIwCIE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632559" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="left" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
</node>
<node concept="1TJgyj" id="7kypvuIwCIF" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632560" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="right" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -446,7 +460,7 @@
</node>
<node concept="1TJgyj" id="7kypvuIwCJE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632590" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="operand" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -542,14 +556,14 @@
<ref role="1TJDcQ" node="7kypvuIwCIC" resolve="Expression" />
<node concept="1TJgyj" id="7kypvuIwCND" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632653" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="target" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
</node>
<node concept="1TJgyj" id="7kypvuIwCNE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632654" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="index" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -561,7 +575,7 @@
<ref role="1TJDcQ" node="7kypvuIwCIC" resolve="Expression" />
<node concept="1TJgyj" id="7kypvuIwCOE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632686" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="target" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -594,7 +608,7 @@
<ref role="1TJDcQ" node="7kypvuIwBBC" resolve="Type" />
<node concept="1TJgyj" id="7kypvuIwBDE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632366" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="elementType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
@@ -606,7 +620,7 @@
<ref role="1TJDcQ" node="7kypvuIwBBC" resolve="Type" />
<node concept="1TJgyj" id="7kypvuIwBGE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632398" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="elementType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
@@ -618,14 +632,14 @@
<ref role="1TJDcQ" node="7kypvuIwBBC" resolve="Type" />
<node concept="1TJgyj" id="7kypvuIwBEE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632430" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="keyType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
</node>
<node concept="1TJgyj" id="7kypvuIwBEF" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632431" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="valueType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
@@ -649,14 +663,14 @@
<ref role="1TJDcQ" node="7kypvuIwBBC" resolve="Type" />
<node concept="1TJgyj" id="7kypvuIwBIE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632494" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="elementType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
</node>
<node concept="1TJgyj" id="7kypvuIwBIF" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632495" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="size" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -668,7 +682,7 @@
<ref role="1TJDcQ" node="7kypvuIwBBC" resolve="Type" />
<node concept="1TJgyj" id="7kypvuIwBFE" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632526" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="innerType" />
<property role="20lbJX" value="fLJekj4/_1" />
<ref role="20lvS9" node="7kypvuIwBBC" resolve="Type" />
@@ -711,7 +725,7 @@
</node>
<node concept="1TJgyj" id="7kypvuIwFCH" role="1TKVEi">
<property role="IQ2ns" value="8982541288447632625" />
<property role="20lmBu" value="fLJjDmT/reference" />
<property role="20lmBu" value="fLJjDmT/aggregation" />
<property role="20kJfa" value="derefTime" />
<property role="20lbJX" value="fLJekj5/_0__1" />
<ref role="20lvS9" node="7kypvuIwCIC" resolve="Expression" />
@@ -777,5 +791,21 @@
<ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
</node>
</node>
<node concept="25R3W" id="6LZhwXW979c">
<property role="3F6X1D" value="7818044510459687500" />
<property role="TrG5h" value="TargetLanguage" />
<node concept="25R33" id="6LZhwXW979d" role="25R1y">
<property role="3tVfz5" value="7818044510459687501" />
<property role="TrG5h" value="python" />
</node>
<node concept="25R33" id="6LZhwXW98Rc" role="25R1y">
<property role="3tVfz5" value="7818044510459694540" />
<property role="TrG5h" value="cpp" />
</node>
<node concept="25R33" id="6LZhwXW98Xr" role="25R1y">
<property role="3tVfz5" value="7818044510459694939" />
<property role="TrG5h" value="both" />
</node>
</node>
</model>

View File

@@ -34,9 +34,18 @@
<child id="1068580123156" name="expression" index="3clFbG" />
</concept>
<concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
<concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
<child id="1068580123160" name="condition" index="3clFbw" />
<child id="1068580123161" name="ifTrue" index="3clFbx" />
</concept>
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
<child id="1068581517665" name="statement" index="3cqZAp" />
</concept>
<concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
<child id="1081773367579" name="rightExpression" index="3uHU7w" />
<child id="1081773367580" name="leftExpression" index="3uHU7B" />
</concept>
<concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
</language>
<language id="b83431fe-5c8f-40bc-8a36-65e25f4dd253" name="jetbrains.mps.lang.textGen">
<concept id="8931911391946696733" name="jetbrains.mps.lang.textGen.structure.ExtensionDeclaration" flags="in" index="9MYSb" />
@@ -62,6 +71,9 @@
<concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
<reference id="1138056395725" name="property" index="3TsBF5" />
</concept>
<concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
<reference id="1138056516764" name="link" index="3Tt5mk" />
</concept>
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
<reference id="1138056546658" name="link" index="3TtcxE" />
</concept>
@@ -237,24 +249,6 @@
</node>
</node>
</node>
<!-- Phase 1: Core AST Structure Textgen Definitions (38 concepts) -->
<!-- Annotation Textgen -->
<node concept="WtQ9Q" id="TG_20001">
<ref role="WuzLi" to="k8se:7kypvuIwFCC" resolve="Annotation" />
<node concept="11bSqf" id="TG_20002" role="11c4hB">
<node concept="3clFbS" id="TG_20003" role="2VODD2">
<node concept="lc7rE" id="TG_20004" role="3cqZAp">
<node concept="l9hG8" id="TG_20005" role="lcghm">
<node concept="117lpO" id="TG_20006" role="lb14g" />
</node>
</node>
</node>
</node>
</node>
<!-- ArrayType Textgen -->
<node concept="WtQ9Q" id="TG_20007">
<ref role="WuzLi" to="k8se:7kypvuIwBIC" resolve="ArrayType" />
<node concept="11bSqf" id="TG_20008" role="11c4hB">
@@ -267,13 +261,10 @@
</node>
</node>
</node>
<!-- Assignment Textgen - simplified to just output name = ... -->
<node concept="WtQ9Q" id="TG_20012">
<ref role="WuzLi" to="k8se:7kypvuIwDEC" resolve="Assignment" />
<node concept="11bSqf" id="TG_20013" role="11c4hB">
<node concept="3clFbS" id="TG_20014" role="2VODD2">
<!-- Output name -->
<node concept="lc7rE" id="FTG_A001" role="3cqZAp">
<node concept="l9hG8" id="FTG_A002" role="lcghm">
<node concept="2OqwBi" id="FTG_A003" role="lb14g">
@@ -284,32 +275,43 @@
</node>
</node>
</node>
<!-- Output " = <value>" -->
<node concept="lc7rE" id="FTG_A006" role="3cqZAp">
<node concept="la8eA" id="FTG_A007" role="lcghm">
<property role="lacIc" value=" = &lt;expr&gt;" />
<property role="lacIc" value=" = " />
</node>
</node>
<node concept="lc7rE" id="FTG2_A001" role="3cqZAp">
<node concept="l9hG8" id="FTG2_A002" role="lcghm">
<node concept="2OqwBi" id="FTG2_A003" role="lb14g">
<node concept="117lpO" id="FTG2_A004" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG2_A005" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwDEE" resolve="value" />
</node>
</node>
</node>
<!-- Newline -->
<node concept="lc7rE" id="FTG_A013" role="3cqZAp">
<node concept="l8MVK" id="FTG_A014" role="lcghm" />
</node>
</node>
</node>
</node>
<!-- BinaryOperation Textgen - simplified to output name (operator) -->
<node concept="WtQ9Q" id="TG_20017">
<ref role="WuzLi" to="k8se:4ypvuIwCIC2" resolve="BinaryOperation" />
<node concept="11bSqf" id="TG_20018" role="11c4hB">
<node concept="3clFbS" id="TG_20019" role="2VODD2">
<!-- Output "<left> " -->
<node concept="lc7rE" id="FTG_BO001" role="3cqZAp">
<node concept="la8eA" id="FTG_BO002" role="lcghm">
<property role="lacIc" value="&lt;left&gt; " />
<node concept="l9hG8" id="FTG_BO002" role="lcghm">
<node concept="2OqwBi" id="FTG2_BO001" role="lb14g">
<node concept="117lpO" id="FTG2_BO002" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG2_BO003" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwCIE" resolve="left" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG2_BO004" role="3cqZAp">
<node concept="la8eA" id="FTG2_BO005" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<!-- Output operator name -->
<node concept="lc7rE" id="FTG_BO008" role="3cqZAp">
<node concept="l9hG8" id="FTG_BO009" role="lcghm">
<node concept="2OqwBi" id="FTG_BO010" role="lb14g">
@@ -320,22 +322,28 @@
</node>
</node>
</node>
<!-- Output " <right>" -->
<node concept="lc7rE" id="FTG2_BO006" role="3cqZAp">
<node concept="la8eA" id="FTG2_BO007" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_BO013" role="3cqZAp">
<node concept="la8eA" id="FTG_BO014" role="lcghm">
<property role="lacIc" value=" &lt;right&gt;" />
<node concept="l9hG8" id="FTG_BO014" role="lcghm">
<node concept="2OqwBi" id="FTG2_BO008" role="lb14g">
<node concept="117lpO" id="FTG2_BO009" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG2_BO010" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwCIF" resolve="right" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<!-- Block Textgen -->
<node concept="WtQ9Q" id="TG_20022">
<ref role="WuzLi" to="k8se:7kypvuIwDDD" resolve="Block" />
<node concept="11bSqf" id="TG_20023" role="11c4hB">
<node concept="3clFbS" id="TG_20024" role="2VODD2">
<!-- Iterate over statements -->
<node concept="2Gpval" id="FTG_BL001" role="3cqZAp">
<node concept="2GrKxI" id="FTG_BL002" role="2Gsz3X">
<property role="TrG5h" value="stmt" />
@@ -347,6 +355,11 @@
</node>
</node>
<node concept="3clFbS" id="FTG_BL006" role="2LFqv$">
<node concept="lc7rE" id="FTG2_BL001" role="3cqZAp">
<node concept="la8eA" id="FTG2_BL002" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_BL007" role="3cqZAp">
<node concept="l9hG8" id="FTG_BL008" role="lcghm">
<node concept="2GrUjf" id="FTG_BL009" role="lb14g">
@@ -354,13 +367,14 @@
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_BL010" role="3cqZAp">
<node concept="l8MVK" id="FTG_BL011" role="lcghm" />
</node>
</node>
</node>
</node>
</node>
</node>
<!-- BooleanLiteral Textgen -->
<node concept="WtQ9Q" id="TG_20027">
<ref role="WuzLi" to="k8se:7kypvuIwCGC" resolve="BooleanLiteral" />
<node concept="11bSqf" id="TG_20028" role="11c4hB">
@@ -373,8 +387,6 @@
</node>
</node>
</node>
<!-- CustomType Textgen -->
<node concept="WtQ9Q" id="TG_20032">
<ref role="WuzLi" to="k8se:7kypvuIwBJC" resolve="CustomType" />
<node concept="11bSqf" id="TG_20033" role="11c4hB">
@@ -387,8 +399,6 @@
</node>
</node>
</node>
<!-- DerefStrategy Textgen -->
<node concept="WtQ9Q" id="TG_20037">
<ref role="WuzLi" to="k8se:7kypvuIwFCD" resolve="DerefStrategy" />
<node concept="11bSqf" id="TG_20038" role="11c4hB">
@@ -401,41 +411,23 @@
</node>
</node>
</node>
<!-- Expression Textgen -->
<node concept="WtQ9Q" id="TG_20042">
<ref role="WuzLi" to="k8se:7kypvuIwCIC" resolve="Expression" />
<node concept="11bSqf" id="TG_20043" role="11c4hB">
<node concept="3clFbS" id="TG_20044" role="2VODD2">
<node concept="lc7rE" id="TG_20045" role="3cqZAp">
<node concept="l9hG8" id="TG_20046" role="lcghm">
<node concept="117lpO" id="TG_20047" role="lb14g" />
</node>
</node>
</node>
</node>
</node>
<!-- ExpressionStatement Textgen - simplified -->
<node concept="WtQ9Q" id="TG_20048">
<ref role="WuzLi" to="k8se:7kypvuIwDJC" resolve="ExpressionStatement" />
<node concept="11bSqf" id="TG_20049" role="11c4hB">
<node concept="3clFbS" id="TG_20050" role="2VODD2">
<!-- Output placeholder -->
<node concept="lc7rE" id="FTG_ES001" role="3cqZAp">
<node concept="la8eA" id="FTG_ES002" role="lcghm">
<property role="lacIc" value="&lt;expression&gt;" />
</node>
</node>
<!-- Newline -->
<node concept="lc7rE" id="FTG_ES006" role="3cqZAp">
<node concept="l8MVK" id="FTG_ES007" role="lcghm" />
<node concept="l9hG8" id="FTG_ES002" role="lcghm">
<node concept="2OqwBi" id="FTG2_ES001" role="lb14g">
<node concept="117lpO" id="FTG2_ES002" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG2_ES003" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwDJD" resolve="expression" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<!-- FloatLiteral Textgen -->
<node concept="WtQ9Q" id="TG_20053">
<ref role="WuzLi" to="k8se:7kypvuIwCEC" resolve="FloatLiteral" />
<node concept="11bSqf" id="TG_20054" role="11c4hB">
@@ -448,8 +440,6 @@
</node>
</node>
</node>
<!-- ForLoop Textgen -->
<node concept="WtQ9Q" id="TG_20058">
<ref role="WuzLi" to="k8se:7kypvuIwDHC" resolve="ForLoop" />
<node concept="11bSqf" id="TG_20059" role="11c4hB">
@@ -462,19 +452,15 @@
</node>
</node>
</node>
<!-- Function Textgen -->
<node concept="WtQ9Q" id="TG_20063">
<ref role="WuzLi" to="k8se:7kypvuIwEDC" resolve="Function" />
<node concept="11bSqf" id="TG_20064" role="11c4hB">
<node concept="3clFbS" id="TG_20065" role="2VODD2">
<!-- Output "def " -->
<node concept="lc7rE" id="FTG_F001" role="3cqZAp">
<node concept="la8eA" id="FTG_F002" role="lcghm">
<property role="lacIc" value="def " />
</node>
</node>
<!-- Output function name -->
<node concept="lc7rE" id="FTG_F003" role="3cqZAp">
<node concept="l9hG8" id="FTG_F004" role="lcghm">
<node concept="2OqwBi" id="FTG_F005" role="lb14g">
@@ -485,13 +471,11 @@
</node>
</node>
</node>
<!-- Output "(" -->
<node concept="lc7rE" id="FTG_F008" role="3cqZAp">
<node concept="la8eA" id="FTG_F009" role="lcghm">
<property role="lacIc" value="(" />
</node>
</node>
<!-- Iterate over parameters with comma separation -->
<node concept="2Gpval" id="FTG_F010" role="3cqZAp">
<node concept="2GrKxI" id="FTG_F011" role="2Gsz3X">
<property role="TrG5h" value="param" />
@@ -517,7 +501,6 @@
</node>
</node>
</node>
<!-- Output "):" and newline -->
<node concept="lc7rE" id="FTG_F021" role="3cqZAp">
<node concept="la8eA" id="FTG_F022" role="lcghm">
<property role="lacIc" value="):" />
@@ -526,7 +509,6 @@
<node concept="lc7rE" id="FTG_F023" role="3cqZAp">
<node concept="l8MVK" id="FTG_F024" role="lcghm" />
</node>
<!-- Iterate over body statements -->
<node concept="2Gpval" id="FTG_F025" role="3cqZAp">
<node concept="2GrKxI" id="FTG_F026" role="2Gsz3X">
<property role="TrG5h" value="stmt" />
@@ -550,13 +532,14 @@
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_F036" role="3cqZAp">
<node concept="l8MVK" id="FTG_F037" role="lcghm" />
</node>
</node>
</node>
</node>
</node>
</node>
<!-- FunctionCall Textgen -->
<node concept="WtQ9Q" id="TG_20068">
<ref role="WuzLi" to="k8se:7kypvuIwCLC" resolve="FunctionCall" />
<node concept="11bSqf" id="TG_20069" role="11c4hB">
@@ -569,8 +552,6 @@
</node>
</node>
</node>
<!-- IfStatement Textgen -->
<node concept="WtQ9Q" id="TG_20073">
<ref role="WuzLi" to="k8se:7kypvuIwDFC" resolve="IfStatement" />
<node concept="11bSqf" id="TG_20074" role="11c4hB">
@@ -583,8 +564,6 @@
</node>
</node>
</node>
<!-- IndexAccess Textgen -->
<node concept="WtQ9Q" id="TG_20078">
<ref role="WuzLi" to="k8se:7kypvuIwCNC" resolve="IndexAccess" />
<node concept="11bSqf" id="TG_20079" role="11c4hB">
@@ -597,13 +576,10 @@
</node>
</node>
</node>
<!-- IntegerLiteral Textgen - simplified (int to string requires conversion) -->
<node concept="WtQ9Q" id="TG_20083">
<ref role="WuzLi" to="k8se:7kypvuIwCDC" resolve="IntegerLiteral" />
<node concept="11bSqf" id="TG_20084" role="11c4hB">
<node concept="3clFbS" id="TG_20085" role="2VODD2">
<!-- Output placeholder for int value -->
<node concept="lc7rE" id="FTG_IL001" role="3cqZAp">
<node concept="la8eA" id="FTG_IL002" role="lcghm">
<property role="lacIc" value="&lt;int&gt;" />
@@ -612,8 +588,6 @@
</node>
</node>
</node>
<!-- LangSpecific Textgen -->
<node concept="WtQ9Q" id="TG_20088">
<ref role="WuzLi" to="k8se:7kypvuIwFED" resolve="LangSpecific" />
<node concept="11bSqf" id="TG_20089" role="11c4hB">
@@ -626,8 +600,6 @@
</node>
</node>
</node>
<!-- ListLiteral Textgen -->
<node concept="WtQ9Q" id="TG_20093">
<ref role="WuzLi" to="k8se:7kypvuIwCMC" resolve="ListLiteral" />
<node concept="11bSqf" id="TG_20094" role="11c4hB">
@@ -640,8 +612,6 @@
</node>
</node>
</node>
<!-- ListType Textgen -->
<node concept="WtQ9Q" id="TG_20098">
<ref role="WuzLi" to="k8se:7kypvuIwBDC" resolve="ListType" />
<node concept="11bSqf" id="TG_20099" role="11c4hB">
@@ -654,8 +624,6 @@
</node>
</node>
</node>
<!-- MapType Textgen -->
<node concept="WtQ9Q" id="TG_20103">
<ref role="WuzLi" to="k8se:7kypvuIwBEC" resolve="MapType" />
<node concept="11bSqf" id="TG_20104" role="11c4hB">
@@ -668,8 +636,6 @@
</node>
</node>
</node>
<!-- MemberAccess Textgen -->
<node concept="WtQ9Q" id="TG_20108">
<ref role="WuzLi" to="k8se:7kypvuIwCOC" resolve="MemberAccess" />
<node concept="11bSqf" id="TG_20109" role="11c4hB">
@@ -682,19 +648,26 @@
</node>
</node>
</node>
<!-- Module Textgen -->
<node concept="WtQ9Q" id="TG_20113">
<ref role="WuzLi" to="k8se:7kypvuIwECC" resolve="Module" />
<node concept="9MYSb" id="FTG_MEXT1" role="33IsuW">
<node concept="3clFbS" id="FTG_MEXT2" role="2VODD2">
<node concept="3clFbF" id="FTG_MEXT3" role="3cqZAp">
<node concept="Xl_RD" id="FTG_MEXT4" role="3clFbG">
<property role="Xl_RC" value="txt" />
</node>
</node>
</node>
</node>
<node concept="11bSqf" id="TG_20114" role="11c4hB">
<node concept="3clFbS" id="TG_20115" role="2VODD2">
<!-- Output "# Module: " -->
<node concept="3clFbJ" id="IF_PY001" role="3cqZAp">
<node concept="3clFbS" id="IF_PY002" role="3clFbx">
<node concept="lc7rE" id="FTG_M001" role="3cqZAp">
<node concept="la8eA" id="FTG_M002" role="lcghm">
<property role="lacIc" value="# Module: " />
</node>
</node>
<!-- Output module name -->
<node concept="lc7rE" id="FTG_M003" role="3cqZAp">
<node concept="l9hG8" id="FTG_M004" role="lcghm">
<node concept="2OqwBi" id="FTG_M005" role="lb14g">
@@ -705,14 +678,12 @@
</node>
</node>
</node>
<!-- Newline -->
<node concept="lc7rE" id="FTG_M008" role="3cqZAp">
<node concept="l8MVK" id="FTG_M009" role="lcghm" />
</node>
<!-- Iterate over variables -->
<node concept="2Gpval" id="FTG_M010" role="3cqZAp">
<node concept="2GrKxI" id="FTG_M011" role="2Gsz3X">
<property role="TrG5h" value="var" />
<property role="TrG5h" value="pvar" />
</node>
<node concept="2OqwBi" id="FTG_M012" role="2GsD0m">
<node concept="117lpO" id="FTG_M013" role="2Oq$k0" />
@@ -724,7 +695,7 @@
<node concept="lc7rE" id="FTG_M016" role="3cqZAp">
<node concept="l9hG8" id="FTG_M017" role="lcghm">
<node concept="2GrUjf" id="FTG_M018" role="lb14g">
<ref role="2Gs0qQ" node="FTG_M011" resolve="var" />
<ref role="2Gs0qQ" node="FTG_M011" resolve="pvar" />
</node>
</node>
</node>
@@ -733,10 +704,12 @@
</node>
</node>
</node>
<!-- Iterate over functions -->
<node concept="lc7rE" id="FTG_M040" role="3cqZAp">
<node concept="l8MVK" id="FTG_M041" role="lcghm" />
</node>
<node concept="2Gpval" id="FTG_M021" role="3cqZAp">
<node concept="2GrKxI" id="FTG_M022" role="2Gsz3X">
<property role="TrG5h" value="func" />
<property role="TrG5h" value="pfunc" />
</node>
<node concept="2OqwBi" id="FTG_M023" role="2GsD0m">
<node concept="117lpO" id="FTG_M024" role="2Oq$k0" />
@@ -748,7 +721,7 @@
<node concept="lc7rE" id="FTG_M027" role="3cqZAp">
<node concept="l9hG8" id="FTG_M028" role="lcghm">
<node concept="2GrUjf" id="FTG_M029" role="lb14g">
<ref role="2Gs0qQ" node="FTG_M022" resolve="func" />
<ref role="2Gs0qQ" node="FTG_M022" resolve="pfunc" />
</node>
</node>
</node>
@@ -758,10 +731,260 @@
</node>
</node>
</node>
<node concept="3y3z36" id="6LZhwXWa02p" role="3clFbw">
<node concept="2OqwBi" id="IF_PY004" role="3uHU7B">
<node concept="117lpO" id="IF_PY005" role="2Oq$k0" />
<node concept="3TrcHB" id="IF_PY006" role="2OqNvi">
<ref role="3TsBF5" to="k8se:7kypvuIwECI" resolve="targetLanguage" />
</node>
</node>
<node concept="Xl_RD" id="6LZhwXWavEO" role="3uHU7w">
<property role="Xl_RC" value="cpp" />
</node>
</node>
</node>
<node concept="3clFbJ" id="IF_CPP001" role="3cqZAp">
<node concept="3clFbS" id="IF_CPP002" role="3clFbx">
<node concept="lc7rE" id="FTG_C000" role="3cqZAp">
<node concept="l8MVK" id="FTG_C000b" role="lcghm" />
</node>
<node concept="lc7rE" id="FTG_C001" role="3cqZAp">
<node concept="la8eA" id="FTG_C002" role="lcghm">
<property role="lacIc" value="// Module: " />
</node>
</node>
<node concept="lc7rE" id="FTG_C003" role="3cqZAp">
<node concept="l9hG8" id="FTG_C004" role="lcghm">
<node concept="2OqwBi" id="FTG_C005" role="lb14g">
<node concept="117lpO" id="FTG_C006" role="2Oq$k0" />
<node concept="3TrcHB" id="FTG_C007" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C008" role="3cqZAp">
<node concept="l8MVK" id="FTG_C009" role="lcghm" />
</node>
<node concept="2Gpval" id="FTG_C010" role="3cqZAp">
<node concept="2GrKxI" id="FTG_C011" role="2Gsz3X">
<property role="TrG5h" value="cvar" />
</node>
<node concept="2OqwBi" id="FTG_C012" role="2GsD0m">
<node concept="117lpO" id="FTG_C013" role="2Oq$k0" />
<node concept="3Tsc0h" id="FTG_C014" role="2OqNvi">
<ref role="3TtcxE" to="k8se:7kypvuIwECG" resolve="variables" />
</node>
</node>
<node concept="3clFbS" id="FTG_C015" role="2LFqv$">
<node concept="lc7rE" id="FTG_C016" role="3cqZAp">
<node concept="l9hG8" id="FTG_C017" role="lcghm">
<node concept="2OqwBi" id="FTG_C018" role="lb14g">
<node concept="2GrUjf" id="FTG_C019" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C011" resolve="cvar" />
</node>
<node concept="3TrEf2" id="FTG_C020" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwEFF" resolve="type" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C021" role="3cqZAp">
<node concept="la8eA" id="FTG_C022" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_C023" role="3cqZAp">
<node concept="l9hG8" id="FTG_C024" role="lcghm">
<node concept="2OqwBi" id="FTG_C025" role="lb14g">
<node concept="2GrUjf" id="FTG_C026" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C011" resolve="cvar" />
</node>
<node concept="3TrcHB" id="FTG_C027" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C028" role="3cqZAp">
<node concept="la8eA" id="FTG_C029" role="lcghm">
<property role="lacIc" value=";" />
</node>
</node>
<node concept="lc7rE" id="FTG_C030" role="3cqZAp">
<node concept="l8MVK" id="FTG_C031" role="lcghm" />
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C040" role="3cqZAp">
<node concept="l8MVK" id="FTG_C041" role="lcghm" />
</node>
<node concept="2Gpval" id="FTG_C050" role="3cqZAp">
<node concept="2GrKxI" id="FTG_C051" role="2Gsz3X">
<property role="TrG5h" value="cfunc" />
</node>
<node concept="2OqwBi" id="FTG_C052" role="2GsD0m">
<node concept="117lpO" id="FTG_C053" role="2Oq$k0" />
<node concept="3Tsc0h" id="FTG_C054" role="2OqNvi">
<ref role="3TtcxE" to="k8se:7kypvuIwECF" resolve="functions" />
</node>
</node>
<node concept="3clFbS" id="FTG_C055" role="2LFqv$">
<node concept="lc7rE" id="FTG_C056" role="3cqZAp">
<node concept="l9hG8" id="FTG_C057" role="lcghm">
<node concept="2OqwBi" id="FTG_C058" role="lb14g">
<node concept="2GrUjf" id="FTG_C059" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C051" resolve="cfunc" />
</node>
<node concept="3TrEf2" id="FTG_C060" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwEDG" resolve="returnType" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C061" role="3cqZAp">
<node concept="la8eA" id="FTG_C062" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_C063" role="3cqZAp">
<node concept="l9hG8" id="FTG_C064" role="lcghm">
<node concept="2OqwBi" id="FTG_C065" role="lb14g">
<node concept="2GrUjf" id="FTG_C066" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C051" resolve="cfunc" />
</node>
<node concept="3TrcHB" id="FTG_C067" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C068" role="3cqZAp">
<node concept="la8eA" id="FTG_C069" role="lcghm">
<property role="lacIc" value="(" />
</node>
</node>
<node concept="2Gpval" id="FTG_C070" role="3cqZAp">
<node concept="2GrKxI" id="FTG_C071" role="2Gsz3X">
<property role="TrG5h" value="cparam" />
</node>
<node concept="2OqwBi" id="FTG_C072" role="2GsD0m">
<node concept="2GrUjf" id="FTG_C073" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C051" resolve="cfunc" />
</node>
<node concept="3Tsc0h" id="FTG_C074" role="2OqNvi">
<ref role="3TtcxE" to="k8se:7kypvuIwEDI" resolve="parameters" />
</node>
</node>
<node concept="3clFbS" id="FTG_C075" role="2LFqv$">
<node concept="lc7rE" id="FTG_C076" role="3cqZAp">
<node concept="l9hG8" id="FTG_C077" role="lcghm">
<node concept="2OqwBi" id="FTG_C078" role="lb14g">
<node concept="2GrUjf" id="FTG_C079" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C071" resolve="cparam" />
</node>
<node concept="3TrEf2" id="FTG_C080" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwEEE" resolve="type" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C081" role="3cqZAp">
<node concept="la8eA" id="FTG_C082" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_C083" role="3cqZAp">
<node concept="l9hG8" id="FTG_C084" role="lcghm">
<node concept="2OqwBi" id="FTG_C085" role="lb14g">
<node concept="2GrUjf" id="FTG_C086" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C071" resolve="cparam" />
</node>
<node concept="3TrcHB" id="FTG_C087" role="2OqNvi">
<ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C088" role="3cqZAp">
<node concept="la8eA" id="FTG_C089" role="lcghm">
<property role="lacIc" value=", " />
</node>
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C090" role="3cqZAp">
<node concept="la8eA" id="FTG_C091" role="lcghm">
<property role="lacIc" value=") {" />
</node>
</node>
<node concept="lc7rE" id="FTG_C092" role="3cqZAp">
<node concept="l8MVK" id="FTG_C093" role="lcghm" />
</node>
<node concept="2Gpval" id="FTG_C100" role="3cqZAp">
<node concept="2GrKxI" id="FTG_C101" role="2Gsz3X">
<property role="TrG5h" value="cstmt" />
</node>
<node concept="2OqwBi" id="FTG_C102" role="2GsD0m">
<node concept="2GrUjf" id="FTG_C103" role="2Oq$k0">
<ref role="2Gs0qQ" node="FTG_C051" resolve="cfunc" />
</node>
<node concept="3Tsc0h" id="FTG_C104" role="2OqNvi">
<ref role="3TtcxE" to="k8se:7kypvuIwEDH" resolve="body" />
</node>
</node>
<node concept="3clFbS" id="FTG_C105" role="2LFqv$">
<node concept="lc7rE" id="FTG_C106" role="3cqZAp">
<node concept="la8eA" id="FTG_C107" role="lcghm">
<property role="lacIc" value=" " />
</node>
</node>
<node concept="lc7rE" id="FTG_C108" role="3cqZAp">
<node concept="l9hG8" id="FTG_C109" role="lcghm">
<node concept="2GrUjf" id="FTG_C110" role="lb14g">
<ref role="2Gs0qQ" node="FTG_C101" resolve="cstmt" />
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C111" role="3cqZAp">
<node concept="la8eA" id="FTG_C112" role="lcghm">
<property role="lacIc" value=";" />
</node>
</node>
<node concept="lc7rE" id="FTG_C113" role="3cqZAp">
<node concept="l8MVK" id="FTG_C114" role="lcghm" />
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_C120" role="3cqZAp">
<node concept="la8eA" id="FTG_C121" role="lcghm">
<property role="lacIc" value="}" />
</node>
</node>
<node concept="lc7rE" id="FTG_C122" role="3cqZAp">
<node concept="l8MVK" id="FTG_C123" role="lcghm" />
</node>
<node concept="lc7rE" id="FTG_C124" role="3cqZAp">
<node concept="l8MVK" id="FTG_C125" role="lcghm" />
</node>
</node>
</node>
</node>
<node concept="3y3z36" id="IF_CPP003" role="3clFbw">
<node concept="2OqwBi" id="IF_CPP004" role="3uHU7B">
<node concept="117lpO" id="IF_CPP005" role="2Oq$k0" />
<node concept="3TrcHB" id="IF_CPP006" role="2OqNvi">
<ref role="3TsBF5" to="k8se:7kypvuIwECI" resolve="targetLanguage" />
</node>
</node>
<node concept="Xl_RD" id="IF_CPP007" role="3uHU7w">
<property role="Xl_RC" value="python" />
</node>
</node>
</node>
</node>
</node>
</node>
<!-- NullLiteral Textgen -->
<node concept="WtQ9Q" id="TG_20118">
<ref role="WuzLi" to="k8se:7kypvuIwCHC" resolve="NullLiteral" />
<node concept="11bSqf" id="TG_20119" role="11c4hB">
@@ -774,8 +997,6 @@
</node>
</node>
</node>
<!-- OptimizationLock Textgen -->
<node concept="WtQ9Q" id="TG_20123">
<ref role="WuzLi" to="k8se:7kypvuIwFDD" resolve="OptimizationLock" />
<node concept="11bSqf" id="TG_20124" role="11c4hB">
@@ -788,8 +1009,6 @@
</node>
</node>
</node>
<!-- OptionalType Textgen -->
<node concept="WtQ9Q" id="TG_20128">
<ref role="WuzLi" to="k8se:7kypvuIwBFC" resolve="OptionalType" />
<node concept="11bSqf" id="TG_20129" role="11c4hB">
@@ -802,13 +1021,10 @@
</node>
</node>
</node>
<!-- Parameter Textgen - simplified -->
<node concept="WtQ9Q" id="TG_20133">
<ref role="WuzLi" to="k8se:7kypvuIwEEC" resolve="Parameter" />
<node concept="11bSqf" id="TG_20134" role="11c4hB">
<node concept="3clFbS" id="TG_20135" role="2VODD2">
<!-- Output parameter name -->
<node concept="lc7rE" id="FTG_P001" role="3cqZAp">
<node concept="l9hG8" id="FTG_P002" role="lcghm">
<node concept="2OqwBi" id="FTG_P003" role="lb14g">
@@ -822,13 +1038,10 @@
</node>
</node>
</node>
<!-- PrimitiveType Textgen -->
<node concept="WtQ9Q" id="TG_20138">
<ref role="WuzLi" to="k8se:7kypvuIwBCC" resolve="PrimitiveType" />
<node concept="11bSqf" id="TG_20139" role="11c4hB">
<node concept="3clFbS" id="TG_20140" role="2VODD2">
<!-- Output kind property -->
<node concept="lc7rE" id="FTG_PT001" role="3cqZAp">
<node concept="l9hG8" id="FTG_PT002" role="lcghm">
<node concept="2OqwBi" id="FTG_PT003" role="lb14g">
@@ -842,28 +1055,28 @@
</node>
</node>
</node>
<!-- Return Textgen -->
<!-- Return Textgen - simplified -->
<node concept="WtQ9Q" id="TG_20143">
<ref role="WuzLi" to="k8se:7kypvuIwDIC" resolve="Return" />
<node concept="11bSqf" id="TG_20144" role="11c4hB">
<node concept="3clFbS" id="TG_20145" role="2VODD2">
<!-- Output "return <value>" -->
<node concept="lc7rE" id="FTG_R001" role="3cqZAp">
<node concept="la8eA" id="FTG_R002" role="lcghm">
<property role="lacIc" value="return &lt;value&gt;" />
<property role="lacIc" value="return " />
</node>
</node>
<node concept="lc7rE" id="FTG2_R001" role="3cqZAp">
<node concept="l9hG8" id="FTG2_R002" role="lcghm">
<node concept="2OqwBi" id="FTG2_R003" role="lb14g">
<node concept="117lpO" id="FTG2_R004" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG2_R005" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwDID" resolve="value" />
</node>
</node>
</node>
<!-- Newline -->
<node concept="lc7rE" id="FTG_R008" role="3cqZAp">
<node concept="l8MVK" id="FTG_R009" role="lcghm" />
</node>
</node>
</node>
</node>
<!-- SetType Textgen -->
<node concept="WtQ9Q" id="TG_20148">
<ref role="WuzLi" to="k8se:7kypvuIwBGC" resolve="SetType" />
<node concept="11bSqf" id="TG_20149" role="11c4hB">
@@ -876,22 +1089,6 @@
</node>
</node>
</node>
<!-- Statement Textgen -->
<node concept="WtQ9Q" id="TG_20153">
<ref role="WuzLi" to="k8se:7kypvuIwDDC" resolve="Statement" />
<node concept="11bSqf" id="TG_20154" role="11c4hB">
<node concept="3clFbS" id="TG_20155" role="2VODD2">
<node concept="lc7rE" id="TG_20156" role="3cqZAp">
<node concept="l9hG8" id="TG_20157" role="lcghm">
<node concept="117lpO" id="TG_20158" role="lb14g" />
</node>
</node>
</node>
</node>
</node>
<!-- StringLiteral Textgen -->
<node concept="WtQ9Q" id="TG_20159">
<ref role="WuzLi" to="k8se:7kypvuIwCFC" resolve="StringLiteral" />
<node concept="11bSqf" id="TG_20160" role="11c4hB">
@@ -904,8 +1101,6 @@
</node>
</node>
</node>
<!-- TupleType Textgen -->
<node concept="WtQ9Q" id="TG_20164">
<ref role="WuzLi" to="k8se:7kypvuIwBHC" resolve="TupleType" />
<node concept="11bSqf" id="TG_20165" role="11c4hB">
@@ -918,22 +1113,6 @@
</node>
</node>
</node>
<!-- Type Textgen -->
<node concept="WtQ9Q" id="TG_20169">
<ref role="WuzLi" to="k8se:7kypvuIwBBC" resolve="Type" />
<node concept="11bSqf" id="TG_20170" role="11c4hB">
<node concept="3clFbS" id="TG_20171" role="2VODD2">
<node concept="lc7rE" id="TG_20172" role="3cqZAp">
<node concept="l9hG8" id="TG_20173" role="lcghm">
<node concept="117lpO" id="TG_20174" role="lb14g" />
</node>
</node>
</node>
</node>
</node>
<!-- UnaryOperation Textgen -->
<node concept="WtQ9Q" id="TG_20175">
<ref role="WuzLi" to="k8se:7kypvuIwCJC" resolve="UnaryOperation" />
<node concept="11bSqf" id="TG_20176" role="11c4hB">
@@ -946,13 +1125,10 @@
</node>
</node>
</node>
<!-- Variable Textgen - simplified -->
<node concept="WtQ9Q" id="TG_20180">
<ref role="WuzLi" to="k8se:7kypvuIwEFC" resolve="Variable" />
<node concept="11bSqf" id="TG_20181" role="11c4hB">
<node concept="3clFbS" id="TG_20182" role="2VODD2">
<!-- Output variable name -->
<node concept="lc7rE" id="FTG_V001" role="3cqZAp">
<node concept="l9hG8" id="FTG_V002" role="lcghm">
<node concept="2OqwBi" id="FTG_V003" role="lb14g">
@@ -963,16 +1139,28 @@
</node>
</node>
</node>
<node concept="lc7rE" id="FTG_V006" role="3cqZAp">
<node concept="la8eA" id="FTG_V007" role="lcghm">
<property role="lacIc" value=": " />
</node>
</node>
<node concept="lc7rE" id="FTG_V008" role="3cqZAp">
<node concept="l9hG8" id="FTG_V009" role="lcghm">
<node concept="2OqwBi" id="FTG_V010" role="lb14g">
<node concept="117lpO" id="FTG_V011" role="2Oq$k0" />
<node concept="3TrEf2" id="FTG_V012" role="2OqNvi">
<ref role="3Tt5mk" to="k8se:7kypvuIwEFF" resolve="type" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<!-- VariableReference Textgen -->
<node concept="WtQ9Q" id="TG_20185">
<ref role="WuzLi" to="k8se:7kypvuIwCKC" resolve="VariableReference" />
<node concept="11bSqf" id="TG_20186" role="11c4hB">
<node concept="3clFbS" id="TG_20187" role="2VODD2">
<!-- Output variableName property -->
<node concept="lc7rE" id="FTG_VR001" role="3cqZAp">
<node concept="l9hG8" id="FTG_VR002" role="lcghm">
<node concept="2OqwBi" id="FTG_VR003" role="lb14g">
@@ -986,8 +1174,6 @@
</node>
</node>
</node>
<!-- WhileLoop Textgen -->
<node concept="WtQ9Q" id="TG_20190">
<ref role="WuzLi" to="k8se:7kypvuIwDGC" resolve="WhileLoop" />
<node concept="11bSqf" id="TG_20191" role="11c4hB">