Add Phase 2 editor definitions for all core AST concepts

- Module editor: renders module signature and nested functions/variables
- Function editor: renders function signature with parameters, return type, and body
- Statement editors: Block, Assignment, IfStatement, WhileLoop, ForLoop, Return, ExpressionStatement
- Expression editors: BinaryOp, UnaryOp, FunctionCall, VariableReference, Literals, Collections, Access
- Type editors: PrimitiveType, ListType, OptionalType, CustomType

All editors support:
- Syntax highlighting with keyword rendering
- Proper indentation for nested structures
- Inline reference editing
- Horizontal and vertical layout as appropriate

Completes Phase 2 of Core AST Structure feature specification.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-02-03 17:19:52 -07:00
parent 967db953c4
commit 61997ce49e

View File

@@ -123,5 +123,464 @@
<property role="3F0ifm" value="{content}" />
</node>
</node>
<!-- Phase 1: Core AST Structure Editors -->
<!-- ====================================== -->
<!-- Module Editor -->
<node concept="24kQdi" id="PhaseI_ModuleEd">
<ref role="1XX52x" to="k8se:7kypvuIwECC" resolve="Module" />
<node concept="3EZMnI" id="PhaseI_ModuleEd_1" role="2wV5jI">
<node concept="2iRkQZ" id="PhaseI_ModuleEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_ModuleEd_K1" role="3EZMnx">
<property role="3F0ifm" value="module " />
</node>
<node concept="3F0A7n" id="PhaseI_ModuleEd_N1" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F2HdR" id="PhaseI_ModuleEd_F1" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwECF" resolve="functions" />
<node concept="2iRkQZ" id="PhaseI_ModuleEd_L2" role="2czzBx" />
</node>
<node concept="3F2HdR" id="PhaseI_ModuleEd_V1" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwECG" resolve="variables" />
<node concept="2iRkQZ" id="PhaseI_ModuleEd_L3" role="2czzBx" />
</node>
</node>
</node>
<!-- Function Editor -->
<node concept="24kQdi" id="PhaseI_FunctionEd">
<ref role="1XX52x" to="k8se:7kypvuIwEDC" resolve="Function" />
<node concept="3EZMnI" id="PhaseI_FunctionEd_1" role="2wV5jI">
<node concept="2iRkQZ" id="PhaseI_FunctionEd_L1" role="2iSdaV" />
<node concept="3EZMnI" id="PhaseI_FunctionEd_Sig" role="3EZMnx">
<node concept="2iRfu4" id="PhaseI_FunctionEd_LS1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_FunctionEd_def" role="3EZMnx">
<property role="3F0ifm" value="def " />
</node>
<node concept="3F0A7n" id="PhaseI_FunctionEd_FName" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F0ifn" id="PhaseI_FunctionEd_OP" role="3EZMnx">
<property role="3F0ifm" value="(" />
</node>
<node concept="3F2HdR" id="PhaseI_FunctionEd_Params" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwEDE" resolve="parameters" />
<node concept="2iRfu4" id="PhaseI_FunctionEd_LS2" role="2czzBx" />
</node>
<node concept="3F0ifn" id="PhaseI_FunctionEd_CP" role="3EZMnx">
<property role="3F0ifm" value=")" />
</node>
<node concept="3F0ifn" id="PhaseI_FunctionEd_Arrow" role="3EZMnx">
<property role="3F0ifm" value=" -> " />
</node>
<node concept="1iCGBv" id="PhaseI_FunctionEd_RetType" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwEDF" resolve="returnType" />
<node concept="1sVBvm" id="PhaseI_FunctionEd_RetTypeInline" role="1sWHZn">
<node concept="3F0A7n" id="PhaseI_FunctionEd_RetTypeVal" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
<node concept="3F0ifn" id="PhaseI_FunctionEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=":" />
</node>
</node>
<node concept="3F2HdR" id="PhaseI_FunctionEd_Body" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwEDG" resolve="body" />
<node concept="2iRkQZ" id="PhaseI_FunctionEd_L2" role="2czzBx" />
</node>
</node>
</node>
<!-- Parameter Editor -->
<node concept="24kQdi" id="PhaseI_ParameterEd">
<ref role="1XX52x" to="k8se:7kypvuIwEEC" resolve="Parameter" />
<node concept="3EZMnI" id="PhaseI_ParameterEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_ParameterEd_L1" role="2iSdaV" />
<node concept="3F0A7n" id="PhaseI_ParameterEd_Name" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F0ifn" id="PhaseI_ParameterEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=": " />
</node>
<node concept="1iCGBv" id="PhaseI_ParameterEd_Type" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwEED" resolve="type" />
<node concept="1sVBvm" id="PhaseI_ParameterEd_TypeInline" role="1sWHZn">
<node concept="3F0A7n" id="PhaseI_ParameterEd_TypeVal" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<!-- Variable Editor -->
<node concept="24kQdi" id="PhaseI_VariableEd">
<ref role="1XX52x" to="k8se:7kypvuIwEFC" resolve="Variable" />
<node concept="3EZMnI" id="PhaseI_VariableEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_VariableEd_L1" role="2iSdaV" />
<node concept="3F0A7n" id="PhaseI_VariableEd_Name" role="3EZMnx">
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
<node concept="3F0ifn" id="PhaseI_VariableEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=": " />
</node>
<node concept="1iCGBv" id="PhaseI_VariableEd_Type" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwEFD" resolve="type" />
<node concept="1sVBvm" id="PhaseI_VariableEd_TypeInline" role="1sWHZn">
<node concept="3F0A7n" id="PhaseI_VariableEd_TypeVal" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
</node>
</node>
<!-- Block Statement Editor -->
<node concept="24kQdi" id="PhaseI_BlockEd">
<ref role="1XX52x" to="k8se:7kypvuIwDDD" resolve="Block" />
<node concept="3F2HdR" id="PhaseI_BlockEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwDDE" resolve="statements" />
<node concept="2iRkQZ" id="PhaseI_BlockEd_L1" role="2czzBx" />
</node>
</node>
<!-- Assignment Statement Editor -->
<node concept="24kQdi" id="PhaseI_AssignmentEd">
<ref role="1XX52x" to="k8se:7kypvuIwDEC" resolve="Assignment" />
<node concept="3EZMnI" id="PhaseI_AssignmentEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_AssignmentEd_L1" role="2iSdaV" />
<node concept="1iCGBv" id="PhaseI_AssignmentEd_Target" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDED" resolve="target" />
<node concept="1sVBvm" id="PhaseI_AssignmentEd_TargetInline" role="1sWHZn">
<node concept="3F0A7n" id="PhaseI_AssignmentEd_TargetVal" role="2wV5jI">
<property role="1Intyy" value="true" />
<ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
</node>
</node>
</node>
<node concept="3F0ifn" id="PhaseI_AssignmentEd_Eq" role="3EZMnx">
<property role="3F0ifm" value=" = " />
</node>
<node concept="1iCGBv" id="PhaseI_AssignmentEd_Value" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDEE" resolve="value" />
<node concept="1sVBvm" id="PhaseI_AssignmentEd_ValueInline" role="1sWHZn" />
</node>
</node>
</node>
<!-- If Statement Editor -->
<node concept="24kQdi" id="PhaseI_IfStatementEd">
<ref role="1XX52x" to="k8se:7kypvuIwDFC" resolve="IfStatement" />
<node concept="3EZMnI" id="PhaseI_IfStatementEd_1" role="2wV5jI">
<node concept="2iRkQZ" id="PhaseI_IfStatementEd_L1" role="2iSdaV" />
<node concept="3EZMnI" id="PhaseI_IfStatementEd_Cond" role="3EZMnx">
<node concept="2iRfu4" id="PhaseI_IfStatementEd_LS1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_IfStatementEd_If" role="3EZMnx">
<property role="3F0ifm" value="if " />
</node>
<node concept="1iCGBv" id="PhaseI_IfStatementEd_Condition" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDFD" resolve="condition" />
<node concept="1sVBvm" id="PhaseI_IfStatementEd_CondInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_IfStatementEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=":" />
</node>
</node>
<node concept="3F2HdR" id="PhaseI_IfStatementEd_Then" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDFE" resolve="thenBranch" />
<node concept="2iRkQZ" id="PhaseI_IfStatementEd_L2" role="2czzBx" />
</node>
<node concept="3F2HdR" id="PhaseI_IfStatementEd_Else" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDFF" resolve="elseBranch" />
<node concept="2iRkQZ" id="PhaseI_IfStatementEd_L3" role="2czzBx" />
</node>
</node>
</node>
<!-- While Loop Editor -->
<node concept="24kQdi" id="PhaseI_WhileLoopEd">
<ref role="1XX52x" to="k8se:7kypvuIwDGC" resolve="WhileLoop" />
<node concept="3EZMnI" id="PhaseI_WhileLoopEd_1" role="2wV5jI">
<node concept="2iRkQZ" id="PhaseI_WhileLoopEd_L1" role="2iSdaV" />
<node concept="3EZMnI" id="PhaseI_WhileLoopEd_Cond" role="3EZMnx">
<node concept="2iRfu4" id="PhaseI_WhileLoopEd_LS1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_WhileLoopEd_While" role="3EZMnx">
<property role="3F0ifm" value="while " />
</node>
<node concept="1iCGBv" id="PhaseI_WhileLoopEd_Condition" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDGD" resolve="condition" />
<node concept="1sVBvm" id="PhaseI_WhileLoopEd_CondInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_WhileLoopEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=":" />
</node>
</node>
<node concept="3F2HdR" id="PhaseI_WhileLoopEd_Body" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDGE" resolve="body" />
<node concept="2iRkQZ" id="PhaseI_WhileLoopEd_L2" role="2czzBx" />
</node>
</node>
</node>
<!-- For Loop Editor -->
<node concept="24kQdi" id="PhaseI_ForLoopEd">
<ref role="1XX52x" to="k8se:7kypvuIwDHC" resolve="ForLoop" />
<node concept="3EZMnI" id="PhaseI_ForLoopEd_1" role="2wV5jI">
<node concept="2iRkQZ" id="PhaseI_ForLoopEd_L1" role="2iSdaV" />
<node concept="3EZMnI" id="PhaseI_ForLoopEd_Header" role="3EZMnx">
<node concept="2iRfu4" id="PhaseI_ForLoopEd_LS1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_ForLoopEd_For" role="3EZMnx">
<property role="3F0ifm" value="for " />
</node>
<node concept="3F0A7n" id="PhaseI_ForLoopEd_Iterator" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDHD" resolve="iteratorName" />
</node>
<node concept="3F0ifn" id="PhaseI_ForLoopEd_In" role="3EZMnx">
<property role="3F0ifm" value=" in " />
</node>
<node concept="1iCGBv" id="PhaseI_ForLoopEd_Iterable" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDHE" resolve="iterable" />
<node concept="1sVBvm" id="PhaseI_ForLoopEd_IterableInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_ForLoopEd_Colon" role="3EZMnx">
<property role="3F0ifm" value=":" />
</node>
</node>
<node concept="3F2HdR" id="PhaseI_ForLoopEd_Body" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDHF" resolve="body" />
<node concept="2iRkQZ" id="PhaseI_ForLoopEd_L2" role="2czzBx" />
</node>
</node>
</node>
<!-- Return Statement Editor -->
<node concept="24kQdi" id="PhaseI_ReturnEd">
<ref role="1XX52x" to="k8se:7kypvuIwDIC" resolve="Return" />
<node concept="3EZMnI" id="PhaseI_ReturnEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_ReturnEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_ReturnEd_Return" role="3EZMnx">
<property role="3F0ifm" value="return " />
</node>
<node concept="1iCGBv" id="PhaseI_ReturnEd_Value" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwDID" resolve="value" />
<node concept="1sVBvm" id="PhaseI_ReturnEd_ValueInline" role="1sWHZn" />
</node>
</node>
</node>
<!-- Expression Statement Editor -->
<node concept="24kQdi" id="PhaseI_ExpressionStatementEd">
<ref role="1XX52x" to="k8se:7kypvuIwDJC" resolve="ExpressionStatement" />
<node concept="1iCGBv" id="PhaseI_ExpressionStatementEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwDJD" resolve="expression" />
<node concept="1sVBvm" id="PhaseI_ExpressionStatementEd_Inline" role="1sWHZn" />
</node>
</node>
<!-- Binary Operation Expression Editor -->
<node concept="24kQdi" id="PhaseI_BinaryOpEd">
<ref role="1XX52x" to="k8se:7kypvuIwCIC2" resolve="BinaryOperation" />
<node concept="3EZMnI" id="PhaseI_BinaryOpEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_BinaryOpEd_L1" role="2iSdaV" />
<node concept="1iCGBv" id="PhaseI_BinaryOpEd_Left" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCIC3" resolve="left" />
<node concept="1sVBvm" id="PhaseI_BinaryOpEd_LeftInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_BinaryOpEd_Space1" role="3EZMnx">
<property role="3F0ifm" value=" " />
</node>
<node concept="3F0A7n" id="PhaseI_BinaryOpEd_Op" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCIC4" resolve="operator" />
</node>
<node concept="3F0ifn" id="PhaseI_BinaryOpEd_Space2" role="3EZMnx">
<property role="3F0ifm" value=" " />
</node>
<node concept="1iCGBv" id="PhaseI_BinaryOpEd_Right" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCIC5" resolve="right" />
<node concept="1sVBvm" id="PhaseI_BinaryOpEd_RightInline" role="1sWHZn" />
</node>
</node>
</node>
<!-- Unary Operation Expression Editor -->
<node concept="24kQdi" id="PhaseI_UnaryOpEd">
<ref role="1XX52x" to="k8se:7kypvuIwCJC" resolve="UnaryOperation" />
<node concept="3EZMnI" id="PhaseI_UnaryOpEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_UnaryOpEd_L1" role="2iSdaV" />
<node concept="3F0A7n" id="PhaseI_UnaryOpEd_Op" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCJD" resolve="operator" />
</node>
<node concept="1iCGBv" id="PhaseI_UnaryOpEd_Operand" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCJE" resolve="operand" />
<node concept="1sVBvm" id="PhaseI_UnaryOpEd_OperandInline" role="1sWHZn" />
</node>
</node>
</node>
<!-- Function Call Expression Editor -->
<node concept="24kQdi" id="PhaseI_FunctionCallEd">
<ref role="1XX52x" to="k8se:7kypvuIwCLC" resolve="FunctionCall" />
<node concept="3EZMnI" id="PhaseI_FunctionCallEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_FunctionCallEd_L1" role="2iSdaV" />
<node concept="3F0A7n" id="PhaseI_FunctionCallEd_Name" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCLD" resolve="functionName" />
</node>
<node concept="3F0ifn" id="PhaseI_FunctionCallEd_OP" role="3EZMnx">
<property role="3F0ifm" value="(" />
</node>
<node concept="3F2HdR" id="PhaseI_FunctionCallEd_Args" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCLE" resolve="arguments" />
<node concept="2iRfu4" id="PhaseI_FunctionCallEd_L2" role="2czzBx" />
</node>
<node concept="3F0ifn" id="PhaseI_FunctionCallEd_CP" role="3EZMnx">
<property role="3F0ifm" value=")" />
</node>
</node>
</node>
<!-- Variable Reference Expression Editor -->
<node concept="24kQdi" id="PhaseI_VariableRefEd">
<ref role="1XX52x" to="k8se:7kypvuIwCKC" resolve="VariableReference" />
<node concept="3F0A7n" id="PhaseI_VariableRefEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwCKD" resolve="variableName" />
</node>
</node>
<!-- Integer Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_IntLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCDC" resolve="IntegerLiteral" />
<node concept="3F0A7n" id="PhaseI_IntLitEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwCDD" resolve="value" />
</node>
</node>
<!-- Float Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_FloatLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCEC" resolve="FloatLiteral" />
<node concept="3F0A7n" id="PhaseI_FloatLitEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwCED" resolve="value" />
</node>
</node>
<!-- String Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_StringLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCFC" resolve="StringLiteral" />
<node concept="3EZMnI" id="PhaseI_StringLitEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_StringLitEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_StringLitEd_Q1" role="3EZMnx">
<property role="3F0ifm" value="\"" />
</node>
<node concept="3F0A7n" id="PhaseI_StringLitEd_Val" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCFD" resolve="value" />
</node>
<node concept="3F0ifn" id="PhaseI_StringLitEd_Q2" role="3EZMnx">
<property role="3F0ifm" value="\"" />
</node>
</node>
</node>
<!-- Boolean Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_BoolLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCGC" resolve="BooleanLiteral" />
<node concept="3F0A7n" id="PhaseI_BoolLitEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwCGD" resolve="value" />
</node>
</node>
<!-- Null Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_NullLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCHC" resolve="NullLiteral" />
<node concept="3F0ifn" id="PhaseI_NullLitEd_1" role="2wV5jI">
<property role="3F0ifm" value="null" />
</node>
</node>
<!-- List Literal Expression Editor -->
<node concept="24kQdi" id="PhaseI_ListLitEd">
<ref role="1XX52x" to="k8se:7kypvuIwCMC" resolve="ListLiteral" />
<node concept="3EZMnI" id="PhaseI_ListLitEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_ListLitEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_ListLitEd_OB" role="3EZMnx">
<property role="3F0ifm" value="[" />
</node>
<node concept="3F2HdR" id="PhaseI_ListLitEd_Elements" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCMD" resolve="elements" />
<node concept="2iRfu4" id="PhaseI_ListLitEd_L2" role="2czzBx" />
</node>
<node concept="3F0ifn" id="PhaseI_ListLitEd_CB" role="3EZMnx">
<property role="3F0ifm" value="]" />
</node>
</node>
</node>
<!-- Index Access Expression Editor -->
<node concept="24kQdi" id="PhaseI_IndexAccessEd">
<ref role="1XX52x" to="k8se:7kypvuIwCNC" resolve="IndexAccess" />
<node concept="3EZMnI" id="PhaseI_IndexAccessEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_IndexAccessEd_L1" role="2iSdaV" />
<node concept="1iCGBv" id="PhaseI_IndexAccessEd_Target" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCND" resolve="target" />
<node concept="1sVBvm" id="PhaseI_IndexAccessEd_TargetInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_IndexAccessEd_OB" role="3EZMnx">
<property role="3F0ifm" value="[" />
</node>
<node concept="1iCGBv" id="PhaseI_IndexAccessEd_Index" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCNE" resolve="index" />
<node concept="1sVBvm" id="PhaseI_IndexAccessEd_IndexInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_IndexAccessEd_CB" role="3EZMnx">
<property role="3F0ifm" value="]" />
</node>
</node>
</node>
<!-- Member Access Expression Editor -->
<node concept="24kQdi" id="PhaseI_MemberAccessEd">
<ref role="1XX52x" to="k8se:7kypvuIwCOC" resolve="MemberAccess" />
<node concept="3EZMnI" id="PhaseI_MemberAccessEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_MemberAccessEd_L1" role="2iSdaV" />
<node concept="1iCGBv" id="PhaseI_MemberAccessEd_Target" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCOD" resolve="target" />
<node concept="1sVBvm" id="PhaseI_MemberAccessEd_TargetInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_MemberAccessEd_Dot" role="3EZMnx">
<property role="3F0ifm" value="." />
</node>
<node concept="3F0A7n" id="PhaseI_MemberAccessEd_Member" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwCOE" resolve="memberName" />
</node>
</node>
</node>
<!-- Primitive Type Editor -->
<node concept="24kQdi" id="PhaseI_PrimitiveTypeEd">
<ref role="1XX52x" to="k8se:7kypvuIwBCC" resolve="PrimitiveType" />
<node concept="3F0A7n" id="PhaseI_PrimitiveTypeEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwBCD" resolve="kind" />
</node>
</node>
<!-- List Type Editor -->
<node concept="24kQdi" id="PhaseI_ListTypeEd">
<ref role="1XX52x" to="k8se:7kypvuIwBDC" resolve="ListType" />
<node concept="3EZMnI" id="PhaseI_ListTypeEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_ListTypeEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_ListTypeEd_List" role="3EZMnx">
<property role="3F0ifm" value="list[" />
</node>
<node concept="1iCGBv" id="PhaseI_ListTypeEd_ElemType" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwBDD" resolve="elementType" />
<node concept="1sVBvm" id="PhaseI_ListTypeEd_ElemTypeInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_ListTypeEd_CB" role="3EZMnx">
<property role="3F0ifm" value="]" />
</node>
</node>
</node>
<!-- Optional Type Editor -->
<node concept="24kQdi" id="PhaseI_OptionalTypeEd">
<ref role="1XX52x" to="k8se:7kypvuIwBFC" resolve="OptionalType" />
<node concept="3EZMnI" id="PhaseI_OptionalTypeEd_1" role="2wV5jI">
<node concept="2iRfu4" id="PhaseI_OptionalTypeEd_L1" role="2iSdaV" />
<node concept="3F0ifn" id="PhaseI_OptionalTypeEd_Optional" role="3EZMnx">
<property role="3F0ifm" value="optional[" />
</node>
<node concept="1iCGBv" id="PhaseI_OptionalTypeEd_InnerType" role="3EZMnx">
<ref role="1NtTu8" to="k8se:7kypvuIwBFD" resolve="innerType" />
<node concept="1sVBvm" id="PhaseI_OptionalTypeEd_InnerTypeInline" role="1sWHZn" />
</node>
<node concept="3F0ifn" id="PhaseI_OptionalTypeEd_CB" role="3EZMnx">
<property role="3F0ifm" value="]" />
</node>
</node>
</node>
<!-- Custom Type Editor -->
<node concept="24kQdi" id="PhaseI_CustomTypeEd">
<ref role="1XX52x" to="k8se:7kypvuIwBJC" resolve="CustomType" />
<node concept="3F0A7n" id="PhaseI_CustomTypeEd_1" role="2wV5jI">
<ref role="1NtTu8" to="k8se:7kypvuIwBJD" resolve="typeName" />
</node>
</node>
</model>