Browse Source

Add mapping for NSArray / NSMutableArray

xcbosa-itx 2 years ago
parent
commit
3bda3df199

BIN
.DS_Store


+ 8 - 0
XCTreeLang.xcodeproj/project.pbxproj

@@ -44,6 +44,8 @@
 		7520C44D2A283CA80010E7F8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7520C44C2A283CA80010E7F8 /* Assets.xcassets */; };
 		7520C4502A283CA80010E7F8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7520C44E2A283CA80010E7F8 /* LaunchScreen.storyboard */; };
 		7520C4532A283CA80010E7F8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7520C4522A283CA80010E7F8 /* main.m */; };
+		7543DAF32A52C6EE00958AAA /* XCTLArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7543DAF22A52C6EE00958AAA /* XCTLArray.swift */; };
+		7543DAF52A52C89200958AAA /* XCTLTypeMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7543DAF42A52C89200958AAA /* XCTLTypeMapper.swift */; };
 		756916792A283E78005FF14B /* XCTreeLang.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7520C3DA2A283AFC0010E7F8 /* XCTreeLang.framework */; };
 		7569167A2A283E78005FF14B /* XCTreeLang.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7520C3DA2A283AFC0010E7F8 /* XCTreeLang.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		756916872A2851DF005FF14B /* XCTLStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 756916862A2851DF005FF14B /* XCTLStream.swift */; };
@@ -137,6 +139,8 @@
 		7520C4512A283CA80010E7F8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		7520C4522A283CA80010E7F8 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
 		7520C4572A283CCC0010E7F8 /* TestApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = TestApp.entitlements; sourceTree = "<group>"; };
+		7543DAF22A52C6EE00958AAA /* XCTLArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTLArray.swift; sourceTree = "<group>"; };
+		7543DAF42A52C89200958AAA /* XCTLTypeMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTLTypeMapper.swift; sourceTree = "<group>"; };
 		756916862A2851DF005FF14B /* XCTLStream.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTLStream.swift; sourceTree = "<group>"; };
 		756916882A286A90005FF14B /* XCTLSetStatement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTLSetStatement.swift; sourceTree = "<group>"; };
 		7569168D2A2896FE005FF14B /* XCTLReturnStatement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTLReturnStatement.swift; sourceTree = "<group>"; };
@@ -285,6 +289,7 @@
 				7520C4112A283B1E0010E7F8 /* XCTLRuntimeAbstractContext.swift */,
 				7520C4122A283B1E0010E7F8 /* XCTLRuntimeContext.swift */,
 				756916862A2851DF005FF14B /* XCTLStream.swift */,
+				7543DAF42A52C89200958AAA /* XCTLTypeMapper.swift */,
 			);
 			path = Runtime;
 			sourceTree = "<group>";
@@ -293,6 +298,7 @@
 			isa = PBXGroup;
 			children = (
 				7520C4182A283B1E0010E7F8 /* XCTLViewController.swift */,
+				7543DAF22A52C6EE00958AAA /* XCTLArray.swift */,
 			);
 			path = InitializerImpl;
 			sourceTree = "<group>";
@@ -552,6 +558,7 @@
 				756916972A28DFE7005FF14B /* XCTLBreakStatement.swift in Sources */,
 				756916BD2A2B91E7005FF14B /* NSArray+Enumerator.swift in Sources */,
 				7520C4312A283B1E0010E7F8 /* XCTLRuntimeVariable.swift in Sources */,
+				7543DAF32A52C6EE00958AAA /* XCTLArray.swift in Sources */,
 				756916912A28C46D005FF14B /* XCTLEnumerator.swift in Sources */,
 				756916AC2A29A357005FF14B /* XCTLExpression.swift in Sources */,
 				7520C42C2A283B1E0010E7F8 /* XCTLLessthanStatement.swift in Sources */,
@@ -571,6 +578,7 @@
 				7520C4242A283B1E0010E7F8 /* XCTLSwitchStatement.swift in Sources */,
 				7520C4232A283B1E0010E7F8 /* XCTLStatementType.swift in Sources */,
 				7520C4252A283B1E0010E7F8 /* XCTLStatement.swift in Sources */,
+				7543DAF52A52C89200958AAA /* XCTLTypeMapper.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

BIN
XCTreeLang.xcodeproj/project.xcworkspace/xcuserdata/xcbosa.xcuserdatad/UserInterfaceState.xcuserstate


+ 330 - 0
XCTreeLang.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -94,6 +94,21 @@
                   endingLineNumber = "45"
                   offsetFromSymbolStart = "2032">
                </Location>
+               <Location
+                  uuid = "CE0B5C7A-BCB9-4114-8800-525E2AAC4483 - c4f83559009bff5e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLEqualthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLEqualthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "45"
+                  endingLineNumber = "45"
+                  offsetFromSymbolStart = "2421">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -187,6 +202,21 @@
                   endingLineNumber = "50"
                   offsetFromSymbolStart = "1944">
                </Location>
+               <Location
+                  uuid = "D7417D2D-E757-4FA5-A8B8-DEA15E2D9450 - c4f83559009bffb5"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLEqualthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLEqualthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "50"
+                  endingLineNumber = "50"
+                  offsetFromSymbolStart = "2313">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -235,6 +265,21 @@
                   endingLineNumber = "43"
                   offsetFromSymbolStart = "372">
                </Location>
+               <Location
+                  uuid = "BB80C1F4-0108-45C0-B5F8-4D92615C620E - 782bad6195591b6c"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLElseStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLElseStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "43"
+                  endingLineNumber = "43"
+                  offsetFromSymbolStart = "434">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -328,6 +373,21 @@
                   endingLineNumber = "49"
                   offsetFromSymbolStart = "2148">
                </Location>
+               <Location
+                  uuid = "2A529CD4-A110-4D23-B16C-CAFAFAD754ED - 22f22d847ab15e90"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLLessthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLLessthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "49"
+                  endingLineNumber = "49"
+                  offsetFromSymbolStart = "2516">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -421,6 +481,21 @@
                   endingLineNumber = "53"
                   offsetFromSymbolStart = "2060">
                </Location>
+               <Location
+                  uuid = "38990361-989A-4D6E-A247-CA5959582158 - 22f22d847ab15e14"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLLessthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLLessthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "53"
+                  endingLineNumber = "53"
+                  offsetFromSymbolStart = "2408">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -469,6 +544,21 @@
                   endingLineNumber = "39"
                   offsetFromSymbolStart = "444">
                </Location>
+               <Location
+                  uuid = "F9CC256C-1B93-464D-9004-6BB6EE749095 - dc67b751bda1c2e6"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLNextthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLNextthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "39"
+                  endingLineNumber = "39"
+                  offsetFromSymbolStart = "490">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -517,6 +607,21 @@
                   endingLineNumber = "42"
                   offsetFromSymbolStart = "348">
                </Location>
+               <Location
+                  uuid = "A7C12A73-E896-4CFC-8D9B-063BEDC41511 - dc67b751bda1dd79"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLNextthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLNextthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "42"
+                  endingLineNumber = "42"
+                  offsetFromSymbolStart = "388">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -580,6 +685,21 @@
                   endingLineNumber = "96"
                   offsetFromSymbolStart = "420">
                </Location>
+               <Location
+                  uuid = "20B938DB-244D-4B20-ACBD-5D1F98A9EBE2 - 6ad8d95f2a05c731"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLParagraphStatement.doRealEvaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext, withArgs: Swift.Array&lt;XCTreeLang.XCTLRuntimeVariable&gt;) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLParagraphStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "96"
+                  endingLineNumber = "96"
+                  offsetFromSymbolStart = "571">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -673,6 +793,21 @@
                   endingLineNumber = "61"
                   offsetFromSymbolStart = "1112">
                </Location>
+               <Location
+                  uuid = "1157454B-7DC1-435C-810F-6DAF5F2B563C - c4f83559009bf12e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLEqualthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLEqualthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "61"
+                  endingLineNumber = "61"
+                  offsetFromSymbolStart = "1251">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -766,6 +901,21 @@
                   endingLineNumber = "49"
                   offsetFromSymbolStart = "2152">
                </Location>
+               <Location
+                  uuid = "B991C77B-91F4-4A57-AC7E-D5C29D505801 - e06e50c0e5a63668"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLMorethanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLMorethanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "49"
+                  endingLineNumber = "49"
+                  offsetFromSymbolStart = "2513">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -859,6 +1009,21 @@
                   endingLineNumber = "53"
                   offsetFromSymbolStart = "2064">
                </Location>
+               <Location
+                  uuid = "DE99138A-2D5F-4CC4-A11F-FAD9B843566D - e06e50c0e5a636d4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLMorethanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLMorethanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "53"
+                  endingLineNumber = "53"
+                  offsetFromSymbolStart = "2405">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -952,6 +1117,21 @@
                   endingLineNumber = "62"
                   offsetFromSymbolStart = "1088">
                </Location>
+               <Location
+                  uuid = "4D995B8D-8DF5-4246-B928-809413B74EE8 - e06e50c0e5a635bd"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLMorethanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLMorethanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "62"
+                  endingLineNumber = "62"
+                  offsetFromSymbolStart = "1204">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1030,6 +1210,21 @@
                   endingLineNumber = "65"
                   offsetFromSymbolStart = "1480">
                </Location>
+               <Location
+                  uuid = "587D9FDF-0913-4C57-A5C2-CACC492FAA36 - e06e50c0e5a63458"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLMorethanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLMorethanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "65"
+                  endingLineNumber = "65"
+                  offsetFromSymbolStart = "1696">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1123,6 +1318,21 @@
                   endingLineNumber = "62"
                   offsetFromSymbolStart = "1088">
                </Location>
+               <Location
+                  uuid = "BFE888DF-761B-43C6-8561-25412C711F3F - 22f22d847ab15f7d"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLLessthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLLessthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "62"
+                  endingLineNumber = "62"
+                  offsetFromSymbolStart = "1204">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1201,6 +1411,21 @@
                   endingLineNumber = "65"
                   offsetFromSymbolStart = "1480">
                </Location>
+               <Location
+                  uuid = "E6E67FFE-B566-47BA-8D1F-AAE8337CB438 - 22f22d847ab15c80"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLLessthanStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLLessthanStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "65"
+                  endingLineNumber = "65"
+                  offsetFromSymbolStart = "1696">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1249,6 +1474,21 @@
                   endingLineNumber = "29"
                   offsetFromSymbolStart = "328">
                </Location>
+               <Location
+                  uuid = "02E0C6D5-D1F2-4EC6-A561-65772D6F96C6 - 8320ac76ede50b83"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLImportStatement.parseStatement(fromLexerToSelf: XCTreeLang.XCTLLexer, fromParent: Swift.Optional&lt;XCTreeLang.XCTLStatement&gt;) throws -&gt; ()"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLImportStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "29"
+                  endingLineNumber = "29"
+                  offsetFromSymbolStart = "317">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1297,6 +1537,21 @@
                   endingLineNumber = "124"
                   offsetFromSymbolStart = "848">
                </Location>
+               <Location
+                  uuid = "C3B0488E-C243-48F8-A91B-52C5156798CE - b2953dc3cfc33d7f"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLVariableRefStatement.evaluateBack(_: XCTreeLang.XCTLRuntimeVariable, inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLVariableRefStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "124"
+                  endingLineNumber = "124"
+                  offsetFromSymbolStart = "1059">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1345,6 +1600,21 @@
                   endingLineNumber = "138"
                   offsetFromSymbolStart = "1852">
                </Location>
+               <Location
+                  uuid = "C0E92D41-309C-419D-BDAE-E705374FB334 - b2953dc3cfc33b2d"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLVariableRefStatement.evaluateBack(_: XCTreeLang.XCTLRuntimeVariable, inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLVariableRefStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "138"
+                  endingLineNumber = "138"
+                  offsetFromSymbolStart = "2269">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1393,6 +1663,21 @@
                   endingLineNumber = "141"
                   offsetFromSymbolStart = "2448">
                </Location>
+               <Location
+                  uuid = "13C4A8A4-B94A-43B8-8601-88F10E7EAC2A - b2953dc3cfc33b4e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLVariableRefStatement.evaluateBack(_: XCTreeLang.XCTLRuntimeVariable, inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLVariableRefStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "141"
+                  endingLineNumber = "141"
+                  offsetFromSymbolStart = "3030">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1441,6 +1726,21 @@
                   endingLineNumber = "93"
                   offsetFromSymbolStart = "2620">
                </Location>
+               <Location
+                  uuid = "4D7F9232-F6DA-4173-82A0-FC2A293AB3FF - 819511eaf925e71d"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLVariableRefStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLVariableRefStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "93"
+                  endingLineNumber = "93"
+                  offsetFromSymbolStart = "3659">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1489,6 +1789,21 @@
                   endingLineNumber = "96"
                   offsetFromSymbolStart = "3216">
                </Location>
+               <Location
+                  uuid = "F8BFE289-40FB-4CC2-8200-C286FC68D912 - 819511eaf925e7f0"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLVariableRefStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/XCTLVariableRefStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "96"
+                  endingLineNumber = "96"
+                  offsetFromSymbolStart = "4420">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -1537,6 +1852,21 @@
                   endingLineNumber = "68"
                   offsetFromSymbolStart = "1032">
                </Location>
+               <Location
+                  uuid = "C29D365A-BB7C-4C98-9E9F-DFBDD1D3B449 - 541be6fa9550d46e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "XCTreeLang.XCTLListStatement.evaluate(inContext: XCTreeLang.XCTLRuntimeAbstractContext) throws -&gt; XCTreeLang.XCTLRuntimeVariable"
+                  moduleName = "XCTreeLang"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/xcbosa/Documents/LibraryProjects/XCTreeLang/XCTreeLang/Statements/VirtualStatement/XCTLListStatement.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "68"
+                  endingLineNumber = "68"
+                  offsetFromSymbolStart = "1318">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>

+ 3 - 3
XCTreeLang.xcodeproj/xcuserdata/xcbosa.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,17 +7,17 @@
 		<key>TestApp.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>2</integer>
+			<integer>1</integer>
 		</dict>
 		<key>XCFramework.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>0</integer>
+			<integer>2</integer>
 		</dict>
 		<key>XCTreeLang.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>1</integer>
+			<integer>0</integer>
 		</dict>
 	</dict>
 </dict>

+ 17 - 0
XCTreeLang/InitializerImpl/XCTLArray.swift

@@ -0,0 +1,17 @@
+//
+//  XCTLArray.swift
+//  XCTreeLang
+//
+//  Created by xcbosa on 2023/7/3.
+//
+
+import Foundation
+
+public class XCTLArray: NSMutableArray, XCTLGenerateProtocol {
+    
+    public static func initWithXCT(_ arg: [Any]) throws -> NSObject {
+        let array = NSMutableArray(array: arg)
+        return array
+    }
+    
+}

+ 21 - 0
XCTreeLang/Runtime/XCTLTypeMapper.swift

@@ -0,0 +1,21 @@
+//
+//  XCTLTypeMapper.swift
+//  XCTreeLang
+//
+//  Created by xcbosa on 2023/7/3.
+//
+
+import Foundation
+
+public class XCTLTypeMapper {
+    
+    public static let nameMapper: [String : String] = [
+        "NSArray" : "XCTLArray",
+        "NSMutableArray" : "XCTLArray"
+    ]
+    
+    public static func mapName(_ name: String) -> String {
+        return nameMapper[name] ?? name
+    }
+    
+}

+ 2 - 1
XCTreeLang/Statements/XCTLInitStatement.swift

@@ -92,7 +92,8 @@ internal class XCTLInitStatement: XCTLStatement, XCTLExpressionPart {
                 variables.append(value)
             }
         }
-        let object = try context.allocateObject(name: typeName, args: variables)
+        let realTypeName = XCTLTypeMapper.mapName(typeName)
+        let object = try context.allocateObject(name: realTypeName, args: variables)
         self.generatedObject = object
         context.setValue(object, forName: self.defineName)
         self.holdingObject = object