From e4b6444cd9b109ce80189dcb850b9bc58e5b0fd9 Mon Sep 17 00:00:00 2001 From: Byron Ellis Date: Tue, 26 Jun 2007 17:17:33 -0700 Subject: [PATCH] initial commit --- .DS_Store | Bin 0 -> 6148 bytes English.lproj/InfoPlist.strings | Bin 0 -> 202 bytes English.lproj/MainMenu.nib/classes.nib | 7 + English.lproj/MainMenu.nib/info.nib | 21 + English.lproj/MainMenu.nib/keyedobjects.nib | Bin 0 -> 13116 bytes English.lproj/MainMenu~.nib/classes.nib | 7 + English.lproj/MainMenu~.nib/info.nib | 22 + English.lproj/MainMenu~.nib/keyedobjects.nib | Bin 0 -> 13756 bytes Info.plist | 30 + RApplication.h | 16 + RApplication.m | 21 + RApplicationDelegate.h | 16 + RApplicationDelegate.m | 35 + RExecServer.xcodeproj/bcellis.mode1 | 1432 +++++++++++++++++++ RExecServer.xcodeproj/bcellis.pbxuser | 1957 ++++++++++++++++++++++++++ RExecServer.xcodeproj/project.pbxproj | 300 ++++ RExecServer_Prefix.pch | 7 + RInterpreter.h | 47 + RInterpreter.m | 259 ++++ main.m | 25 + 20 files changed, 4202 insertions(+) create mode 100644 .DS_Store create mode 100644 English.lproj/InfoPlist.strings create mode 100644 English.lproj/MainMenu.nib/classes.nib create mode 100644 English.lproj/MainMenu.nib/info.nib create mode 100644 English.lproj/MainMenu.nib/keyedobjects.nib create mode 100644 English.lproj/MainMenu~.nib/classes.nib create mode 100644 English.lproj/MainMenu~.nib/info.nib create mode 100644 English.lproj/MainMenu~.nib/keyedobjects.nib create mode 100644 Info.plist create mode 100644 RApplication.h create mode 100644 RApplication.m create mode 100644 RApplicationDelegate.h create mode 100644 RApplicationDelegate.m create mode 100644 RExecServer.xcodeproj/bcellis.mode1 create mode 100644 RExecServer.xcodeproj/bcellis.pbxuser create mode 100644 RExecServer.xcodeproj/project.pbxproj create mode 100644 RExecServer_Prefix.pch create mode 100644 RInterpreter.h create mode 100644 RInterpreter.m create mode 100644 main.m diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d684d6da6d29ff1f86e2ca47eb1c03f3baf317bb GIT binary patch literal 6148 zcwX(7&rZTX5XQg7Y8uq07mdgI0wf;1R{{raMs8kIN)-%Hg2i|t;n{o(pGIeQ2LsF2 zn0PTdzhw8L?R?W^r~ej!YR>y-Knx&+)u0Y9A-64RtOwMT$sqKye2C~}A=4A7uoQ_N7{anq?H$5}^*oc9#jAcysr zj_1|!>|u;Miky&V>>1f&EjGdxE-16josq93EsS^IInUcSy`J-`^EK~rrMHEg_T@BN zdSC7tNA!bSnk?V+Zwedo+8M@TZ@ND`9?aL@T{~;kdErA zX5N{0tE8`k(qxz#f63z-cq;5xsmkllM&x(}AIeI&|8%fMd`MVR)}>X&$7`&? znkQyWSX0)eRmE{N)_^r+jad`clyzy9A6kkRABxYcc!i>3)`T^MAP63Iti<~L->zQ& p3xe>6Q9-NQYT|Q2u!VltCe&_M2KYY&I99)kPgdLVAs`69j}Q2&%W(hz literal 0 HcwPel00001 diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..997688e2fd53fd8d44166a1895730ea43ed42f47 GIT binary patch literal 202 zcwQZh%?`m}5Jk`0Q#6*1sMuJDl?@3NJb)A}LVwaCsWyY`=VRTgwQifr%(a9@V(gT3?!eTTk(zij + + + + IBDocumentLocation + 159 127 356 240 0 0 1920 1178 + IBEditorPositions + + 29 + 156 406 312 44 0 0 1920 1178 + + IBFramework Version + 446.1 + IBOpenObjects + + 29 + + IBSystem Version + 8R2218 + + diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..317f85594cc66d3bce2c857a52c1ebe6b960f004 GIT binary patch literal 13116 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 a{`LNi{+<4PDDuNF(QmFQdgjM}@_zs&c&otx literal 0 HcwPel00001 diff --git a/English.lproj/MainMenu~.nib/classes.nib b/English.lproj/MainMenu~.nib/classes.nib new file mode 100644 index 0000000..502f238 --- /dev/null +++ b/English.lproj/MainMenu~.nib/classes.nib @@ -0,0 +1,7 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = RApplicationDelegate; LANGUAGE = ObjC; SUPERCLASS = NSObject; } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/English.lproj/MainMenu~.nib/info.nib b/English.lproj/MainMenu~.nib/info.nib new file mode 100644 index 0000000..9874f55 --- /dev/null +++ b/English.lproj/MainMenu~.nib/info.nib @@ -0,0 +1,22 @@ + + + + + IBDocumentLocation + 159 127 356 240 0 0 1920 1178 + IBEditorPositions + + 29 + 156 406 338 44 0 0 1920 1178 + + IBFramework Version + 446.1 + IBOpenObjects + + 21 + 29 + + IBSystem Version + 8R2218 + + diff --git a/English.lproj/MainMenu~.nib/keyedobjects.nib b/English.lproj/MainMenu~.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..041a5a439ba4a1e7c15388f8bf42b88cfb05e795 GIT binary patch literal 13756 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 Q{h_GPCp!c^@*`dQKTp~=>Hq)$ literal 0 HcwPel00001 diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..8ce6acf --- /dev/null +++ b/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.RExecServer + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + NSMainNibFile + MainMenu + NSPrincipalClass + RApplication + LSUIElement + 1 + + diff --git a/RApplication.h b/RApplication.h new file mode 100644 index 0000000..cefaa34 --- /dev/null +++ b/RApplication.h @@ -0,0 +1,16 @@ +// +// RApplication.h +// RExecServer +// +// Created by Byron Ellis on 6/26/07. +// Copyright 2007 __MyCompanyName__. All rights reserved. +// + +#import + + +@interface RApplication : NSApplication { + +} + +@end diff --git a/RApplication.m b/RApplication.m new file mode 100644 index 0000000..a231c83 --- /dev/null +++ b/RApplication.m @@ -0,0 +1,21 @@ +// +// RApplication.m +// RExecServer +// +// Created by Byron Ellis on 6/26/07. +// Copyright 2007 __MyCompanyName__. All rights reserved. +// + +#import "RApplication.h" + + +@implementation RApplication +- (void)sendEvent:(NSEvent*)theEvent { + [super sendEvent:theEvent]; + if(NSApplicationDefined == [theEvent type]) { + switch([theEvent subtype]) { + case 1337:[self stop:self];break; + } + } +} +@end diff --git a/RApplicationDelegate.h b/RApplicationDelegate.h new file mode 100644 index 0000000..86d5f24 --- /dev/null +++ b/RApplicationDelegate.h @@ -0,0 +1,16 @@ +// +// RApplicationDelegate.h +// RExecServer +// +// Created by Byron Ellis on 6/26/07. +// Copyright 2007 __MyCompanyName__. All rights reserved. +// + +#import + + +@interface RApplicationDelegate : NSObject { + +} + +@end diff --git a/RApplicationDelegate.m b/RApplicationDelegate.m new file mode 100644 index 0000000..d50b2a5 --- /dev/null +++ b/RApplicationDelegate.m @@ -0,0 +1,35 @@ +// +// RApplicationDelegate.m +// RExecServer +// +// Created by Byron Ellis on 6/26/07. +// Copyright 2007 __MyCompanyName__. All rights reserved. +// + +#import "RApplicationDelegate.h" +#import "RInterpreter.h" + +@implementation RApplicationDelegate + +- (BOOL)applicationShouldOpenUntitledFile:(NSApplication*)sender { return NO; } +- (void)applicationWillFinishLaunching:(NSNotification*)aNotification { + RInterpreter *ri = [RInterpreter sharedInterpreter]; + [ri setDelegate:self]; + if((NULL != getenv("EMACS") && strncmp(getenv("EMACS"),"t",1)==0) || + (NULL != getenv("TERM"))) + [ri setAllowTerminal:YES]; +} +- (void)applicationDidFinishLaunching:(NSNotification*)aNotification { + //Process the remaining events and then bail out to initialize R. + [NSApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined + location:NSMakePoint(0,0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:1337 + data1:0 + data2:0] atStart:NO]; +} + +@end diff --git a/RExecServer.xcodeproj/bcellis.mode1 b/RExecServer.xcodeproj/bcellis.mode1 new file mode 100644 index 0000000..ce30786 --- /dev/null +++ b/RExecServer.xcodeproj/bcellis.mode1 @@ -0,0 +1,1432 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXRunSessionModule + Name + Run Log + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1 + FavBarConfig + + PBXProjectModuleGUID + F03D02180C30C5080012FB79 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1 + MajorVersion + 31 + MinorVersion + 1 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-runOrDebug + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 080E96DDFE201D6D7F000001 + 29B97315FDCFA39411CA2CEA + 29B97317FDCFA39411CA2CEA + 29B97323FDCFA39411CA2CEA + 1058C7A0FEA54F0111CA2CBB + 19C28FACFE9D520D11CA2CBB + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 14 + 11 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 893}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 911}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 458 223 1147 952 0 0 1920 1178 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + RApplicationDelegate.m + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + RApplicationDelegate.m + _historyCapacity + 0 + bookmark + F05D24E50C31E3A400E573F1 + history + + F03D034C0C31A7BD0012FB79 + F03D03AD0C31B02D0012FB79 + F03D03DF0C31B31C0012FB79 + F05D24C10C31E2E200E573F1 + F05D24C20C31E2E200E573F1 + F05D24D70C31E38600E573F1 + F05D24E20C31E3A400E573F1 + F05D24E30C31E3A400E573F1 + + prevStack + + F03D01F40C30C5080012FB79 + F03D01F50C30C5080012FB79 + F03D01F60C30C5080012FB79 + F03D03270C31A4490012FB79 + F03D03280C31A4490012FB79 + F03D03290C31A4490012FB79 + F03D032A0C31A4490012FB79 + F03D032B0C31A4490012FB79 + F05D24850C31DBBC00E573F1 + F05D24C50C31E2E200E573F1 + F05D24C60C31E2E200E573F1 + F05D24C70C31E2E200E573F1 + F05D24C80C31E2E200E573F1 + F05D24C90C31E2E200E573F1 + F05D24CA0C31E2E200E573F1 + F05D24DA0C31E38600E573F1 + F05D24DB0C31E38600E573F1 + F05D24DC0C31E38600E573F1 + F05D24DD0C31E38600E573F1 + F05D24E40C31E3A400E573F1 + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {939, 790}} + RubberWindowFrame + 458 223 1147 952 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 790pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 795}, {939, 116}} + RubberWindowFrame + 458 223 1147 952 0 0 1920 1178 + + Module + XCDetailModule + Proportion + 116pt + + + Proportion + 939pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + F05D24870C31DBBC00E573F1 + 1CE0B1FE06471DED0097A5F4 + F05D24880C31DBBC00E573F1 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.short + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + F05D249C0C31DCFE00E573F1 + F05D249D0C31DCFE00E573F1 + F03D039C0C31AF730012FB79 + F05D249A0C31DCFE00E573F1 + 1CD10A99069EF8BA00B06720 + F03D01EA0C30C4F70012FB79 + 1C0AD2B3069F1EA900FABCE6 + /Users/bcellis/Projects/RExecServer/RExecServer.xcodeproj + + WindowString + 458 223 1147 952 0 0 1920 1178 + WindowTools + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 258 328 500 500 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 258 328 500 500 0 0 1920 1178 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + F03D01EA0C30C4F70012FB79 + F05D24930C31DCFE00E573F1 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.build + WindowString + 258 328 500 500 0 0 1920 1178 + WindowToolGUID + F03D01EA0C30C4F70012FB79 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {446, 287}} + {{446, 0}, {560, 287}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1006, 287}} + {{0, 287}, {1006, 296}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {1006, 583}} + RubberWindowFrame + 496 398 1006 624 0 0 1920 1178 + + Module + PBXDebugSessionModule + Proportion + 583pt + + + Proportion + 583pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + F05D24940C31DCFE00E573F1 + 1C162984064C10D400B95A72 + F05D24950C31DCFE00E573F1 + F05D24960C31DCFE00E573F1 + F05D24970C31DCFE00E573F1 + F05D24980C31DCFE00E573F1 + F05D24990C31DCFE00E573F1 + F05D249A0C31DCFE00E573F1 + + ToolbarConfiguration + xcode.toolbar.config.debug + WindowString + 496 398 1006 624 0 0 1920 1178 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {918, 359}} + RubberWindowFrame + 300 382 918 400 0 0 1920 1178 + + Module + PBXDebugCLIModule + Proportion + 359pt + + + Proportion + 359pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + F03D039C0C31AF730012FB79 + F05D249B0C31DCFE00E573F1 + 1C78EAAC065D492600B07095 + + WindowString + 300 382 918 400 0 0 1920 1178 + WindowToolGUID + F03D039C0C31AF730012FB79 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.run + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + LauncherConfigVersion + 3 + PBXProjectModuleGUID + 1CD0528B0623707200166675 + PBXProjectModuleLabel + Run + Runner + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {493, 167}} + {{0, 176}, {493, 267}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {405, 443}} + {{414, 0}, {514, 443}} + + + + + GeometryConfiguration + + Frame + {{0, 0}, {645, 760}} + RubberWindowFrame + 153 341 645 801 0 0 1920 1178 + + Module + PBXRunSessionModule + Proportion + 760pt + + + Proportion + 760pt + + + Name + Run Log + ServiceClasses + + PBXRunSessionModule + + StatusbarIsVisible + + TableOfContents + + 1C0AD2B3069F1EA900FABCE6 + F05D24890C31DBBC00E573F1 + 1CD0528B0623707200166675 + F05D248A0C31DBBC00E573F1 + + ToolbarConfiguration + xcode.toolbar.config.run + WindowString + 153 341 645 801 0 0 1920 1178 + WindowToolGUID + 1C0AD2B3069F1EA900FABCE6 + WindowToolIsVisible + + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.breakpoints + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 517 590 744 409 0 0 1920 1178 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 517 590 744 409 0 0 1920 1178 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 2 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + + TableOfContents + + F03D03C10C31B1D30012FB79 + F03D03C20C31B1D30012FB79 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpoints + WindowString + 517 590 744 409 0 0 1920 1178 + WindowToolGUID + F03D03C10C31B1D30012FB79 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugAnimator + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + F03D04750C31D6960012FB79 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {700, 459}} + RubberWindowFrame + 517 499 700 500 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 459pt + + + Proportion + 459pt + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + + TableOfContents + + F03D04770C31D6960012FB79 + F03D04780C31D6960012FB79 + F03D04750C31D6960012FB79 + + ToolbarConfiguration + xcode.toolbar.config.debugAnimator + WindowString + 517 499 700 500 0 0 1920 1178 + WindowToolGUID + F03D04770C31D6960012FB79 + WindowToolIsVisible + + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + + diff --git a/RExecServer.xcodeproj/bcellis.pbxuser b/RExecServer.xcodeproj/bcellis.pbxuser new file mode 100644 index 0000000..3b5a0e7 --- /dev/null +++ b/RExecServer.xcodeproj/bcellis.pbxuser @@ -0,0 +1,1957 @@ +// !$*UTF8*$! +{ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeBuildConfigurationName = Debug; + activeExecutable = F03D01850C30A0BF0012FB79 /* RExecServer */; + activeTarget = 8D1107260486CEB800E47090 /* RExecServer */; + addToTargets = ( + 8D1107260486CEB800E47090 /* RExecServer */, + ); + breakpoints = ( + ); + breakpointsGroup = F03D03C30C31B1D30012FB79 /* XCBreakpointsBucket */; + codeSenseManager = F03D01920C30A0DE0012FB79 /* Code sense */; + executables = ( + F03D01850C30A0BF0012FB79 /* RExecServer */, + ); + perUserDictionary = { + "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 20, + 210, + 20, + 110, + 109, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXBreakpointsDataSource_ActionID, + PBXBreakpointsDataSource_TypeID, + PBXBreakpointsDataSource_BreakpointID, + PBXBreakpointsDataSource_UseID, + PBXBreakpointsDataSource_LocationID, + PBXBreakpointsDataSource_ConditionID, + PBXBreakpointsDataSource_ContinueID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 442, + 448, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXErrorsWarningsDataSource_TypeID, + PBXErrorsWarningsDataSource_MessageID, + PBXErrorsWarningsDataSource_LocationID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; + PBXFileTableDataSourceColumnWidthsKey = ( + 22, + 300, + 400, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXExecutablesDataSource_ActiveFlagID, + PBXExecutablesDataSource_NameID, + PBXExecutablesDataSource_CommentsID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 700, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 200, + 248, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 204594098; + PBXWorkspaceStateSaveDate = 204594098; + }; + perUserProjectItems = { + F03D01F40C30C5080012FB79 = F03D01F40C30C5080012FB79 /* PBXTextBookmark */; + F03D01F50C30C5080012FB79 = F03D01F50C30C5080012FB79 /* PBXTextBookmark */; + F03D01F60C30C5080012FB79 = F03D01F60C30C5080012FB79 /* PBXTextBookmark */; + F03D01F70C30C5080012FB79 = F03D01F70C30C5080012FB79 /* PBXTextBookmark */; + F03D01F80C30C5080012FB79 = F03D01F80C30C5080012FB79 /* PBXTextBookmark */; + F03D01F90C30C5080012FB79 = F03D01F90C30C5080012FB79 /* PBXTextBookmark */; + F03D01FA0C30C5080012FB79 = F03D01FA0C30C5080012FB79 /* PBXTextBookmark */; + F03D01FB0C30C5080012FB79 = F03D01FB0C30C5080012FB79 /* PBXTextBookmark */; + F03D01FC0C30C5080012FB79 = F03D01FC0C30C5080012FB79 /* PBXTextBookmark */; + F03D01FD0C30C5080012FB79 = F03D01FD0C30C5080012FB79 /* PBXTextBookmark */; + F03D01FE0C30C5080012FB79 = F03D01FE0C30C5080012FB79 /* PBXTextBookmark */; + F03D01FF0C30C5080012FB79 = F03D01FF0C30C5080012FB79 /* PBXTextBookmark */; + F03D02000C30C5080012FB79 = F03D02000C30C5080012FB79 /* PBXTextBookmark */; + F03D02010C30C5080012FB79 = F03D02010C30C5080012FB79 /* PBXTextBookmark */; + F03D02020C30C5080012FB79 = F03D02020C30C5080012FB79 /* PBXTextBookmark */; + F03D02030C30C5080012FB79 = F03D02030C30C5080012FB79 /* PBXTextBookmark */; + F03D02040C30C5080012FB79 = F03D02040C30C5080012FB79 /* PBXTextBookmark */; + F03D02050C30C5080012FB79 = F03D02050C30C5080012FB79 /* PBXTextBookmark */; + F03D02060C30C5080012FB79 = F03D02060C30C5080012FB79 /* PBXTextBookmark */; + F03D02070C30C5080012FB79 = F03D02070C30C5080012FB79 /* PBXTextBookmark */; + F03D02080C30C5080012FB79 = F03D02080C30C5080012FB79 /* PBXTextBookmark */; + F03D02090C30C5080012FB79 = F03D02090C30C5080012FB79 /* PBXTextBookmark */; + F03D020A0C30C5080012FB79 = F03D020A0C30C5080012FB79 /* PBXTextBookmark */; + F03D020B0C30C5080012FB79 = F03D020B0C30C5080012FB79 /* PBXTextBookmark */; + F03D020C0C30C5080012FB79 = F03D020C0C30C5080012FB79 /* PBXTextBookmark */; + F03D020D0C30C5080012FB79 = F03D020D0C30C5080012FB79 /* PBXTextBookmark */; + F03D020E0C30C5080012FB79 = F03D020E0C30C5080012FB79 /* PBXTextBookmark */; + F03D020F0C30C5080012FB79 = F03D020F0C30C5080012FB79 /* PBXTextBookmark */; + F03D02100C30C5080012FB79 = F03D02100C30C5080012FB79 /* PBXTextBookmark */; + F03D02110C30C5080012FB79 = F03D02110C30C5080012FB79 /* PBXTextBookmark */; + F03D02120C30C5080012FB79 = F03D02120C30C5080012FB79 /* PBXTextBookmark */; + F03D02130C30C5080012FB79 = F03D02130C30C5080012FB79 /* PBXTextBookmark */; + F03D02140C30C5080012FB79 = F03D02140C30C5080012FB79 /* PBXTextBookmark */; + F03D023F0C30C5FC0012FB79 = F03D023F0C30C5FC0012FB79 /* PBXTextBookmark */; + F03D02400C30C5FC0012FB79 = F03D02400C30C5FC0012FB79 /* PBXTextBookmark */; + F03D02410C30C5FC0012FB79 = F03D02410C30C5FC0012FB79 /* PBXTextBookmark */; + F03D02420C30C5FC0012FB79 = F03D02420C30C5FC0012FB79 /* PBXTextBookmark */; + F03D02430C30C5FC0012FB79 = F03D02430C30C5FC0012FB79 /* PBXTextBookmark */; + F03D025A0C30C68A0012FB79 = F03D025A0C30C68A0012FB79 /* PBXTextBookmark */; + F03D025B0C30C68A0012FB79 = F03D025B0C30C68A0012FB79 /* PBXTextBookmark */; + F03D02650C30CB870012FB79 = F03D02650C30CB870012FB79 /* PBXTextBookmark */; + F03D02660C30CB870012FB79 = F03D02660C30CB870012FB79 /* PBXTextBookmark */; + F03D02670C30CB870012FB79 = F03D02670C30CB870012FB79 /* PBXTextBookmark */; + F03D02680C30CB870012FB79 = F03D02680C30CB870012FB79 /* PBXTextBookmark */; + F03D02690C30CB870012FB79 = F03D02690C30CB870012FB79 /* PBXTextBookmark */; + F03D026A0C30CB870012FB79 = F03D026A0C30CB870012FB79 /* PBXTextBookmark */; + F03D026B0C30CB870012FB79 = F03D026B0C30CB870012FB79 /* PBXTextBookmark */; + F03D026C0C30CB870012FB79 = F03D026C0C30CB870012FB79 /* PBXTextBookmark */; + F03D026D0C30CB870012FB79 = F03D026D0C30CB870012FB79 /* PBXTextBookmark */; + F03D026E0C30CB870012FB79 = F03D026E0C30CB870012FB79 /* PBXTextBookmark */; + F03D026F0C30CB870012FB79 = F03D026F0C30CB870012FB79 /* PBXTextBookmark */; + F03D02700C30CB870012FB79 = F03D02700C30CB870012FB79 /* PBXTextBookmark */; + F03D02710C30CB870012FB79 = F03D02710C30CB870012FB79 /* PBXTextBookmark */; + F03D02720C30CB870012FB79 = F03D02720C30CB870012FB79 /* PBXTextBookmark */; + F03D02730C30CB870012FB79 = F03D02730C30CB870012FB79 /* PBXTextBookmark */; + F03D02740C30CB870012FB79 = F03D02740C30CB870012FB79 /* PBXTextBookmark */; + F03D02750C30CB870012FB79 = F03D02750C30CB870012FB79 /* PBXTextBookmark */; + F03D02760C30CB870012FB79 = F03D02760C30CB870012FB79 /* PBXTextBookmark */; + F03D02770C30CB870012FB79 = F03D02770C30CB870012FB79 /* PBXTextBookmark */; + F03D027F0C30CE3D0012FB79 = F03D027F0C30CE3D0012FB79 /* PBXTextBookmark */; + F03D02800C30CE3D0012FB79 = F03D02800C30CE3D0012FB79 /* PBXTextBookmark */; + F03D02810C30CE3D0012FB79 = F03D02810C30CE3D0012FB79 /* PBXTextBookmark */; + F03D028C0C30CE700012FB79 = F03D028C0C30CE700012FB79 /* PBXTextBookmark */; + F03D028D0C30CE700012FB79 = F03D028D0C30CE700012FB79 /* PBXTextBookmark */; + F03D029D0C30CFB30012FB79 = F03D029D0C30CFB30012FB79 /* PBXTextBookmark */; + F03D029E0C30CFB30012FB79 = F03D029E0C30CFB30012FB79 /* PBXTextBookmark */; + F03D02A40C30D0090012FB79 = F03D02A40C30D0090012FB79 /* PBXTextBookmark */; + F03D02A50C30D0090012FB79 = F03D02A50C30D0090012FB79 /* PBXTextBookmark */; + F03D02DF0C30D3810012FB79 = F03D02DF0C30D3810012FB79 /* PBXTextBookmark */; + F03D02E00C30D3810012FB79 = F03D02E00C30D3810012FB79 /* PBXTextBookmark */; + F03D02E10C30D3810012FB79 = F03D02E10C30D3810012FB79 /* PBXTextBookmark */; + F03D02E20C30D3810012FB79 = F03D02E20C30D3810012FB79 /* PBXTextBookmark */; + F03D02E30C30D3810012FB79 = F03D02E30C30D3810012FB79 /* PBXTextBookmark */; + F03D02E40C30D3810012FB79 = F03D02E40C30D3810012FB79 /* PBXTextBookmark */; + F03D02E50C30D3810012FB79 = F03D02E50C30D3810012FB79 /* PBXTextBookmark */; + F03D02E60C30D3810012FB79 = F03D02E60C30D3810012FB79 /* PBXTextBookmark */; + F03D02E70C30D3810012FB79 = F03D02E70C30D3810012FB79 /* PBXTextBookmark */; + F03D02E80C30D3810012FB79 = F03D02E80C30D3810012FB79 /* PBXTextBookmark */; + F03D02E90C30D3810012FB79 = F03D02E90C30D3810012FB79 /* PBXTextBookmark */; + F03D02EA0C30D3810012FB79 = F03D02EA0C30D3810012FB79 /* PBXTextBookmark */; + F03D02EB0C30D3810012FB79 = F03D02EB0C30D3810012FB79 /* PBXTextBookmark */; + F03D02EC0C30D3810012FB79 = F03D02EC0C30D3810012FB79 /* PBXTextBookmark */; + F03D02ED0C30D3810012FB79 = F03D02ED0C30D3810012FB79 /* PBXTextBookmark */; + F03D02EE0C30D3810012FB79 = F03D02EE0C30D3810012FB79 /* PBXTextBookmark */; + F03D02EF0C30D3810012FB79 = F03D02EF0C30D3810012FB79 /* PBXTextBookmark */; + F03D02F00C30D3810012FB79 = F03D02F00C30D3810012FB79 /* PBXTextBookmark */; + F03D03220C31A4490012FB79 = F03D03220C31A4490012FB79 /* PBXTextBookmark */; + F03D03260C31A4490012FB79 = F03D03260C31A4490012FB79 /* PBXTextBookmark */; + F03D03270C31A4490012FB79 = F03D03270C31A4490012FB79 /* PBXTextBookmark */; + F03D03280C31A4490012FB79 = F03D03280C31A4490012FB79 /* PBXTextBookmark */; + F03D03290C31A4490012FB79 = F03D03290C31A4490012FB79 /* PBXTextBookmark */; + F03D032A0C31A4490012FB79 = F03D032A0C31A4490012FB79 /* PBXTextBookmark */; + F03D032B0C31A4490012FB79 = F03D032B0C31A4490012FB79 /* PBXTextBookmark */; + F03D034B0C31A7BD0012FB79 = F03D034B0C31A7BD0012FB79 /* PBXTextBookmark */; + F03D034C0C31A7BD0012FB79 = F03D034C0C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03500C31A7BD0012FB79 = F03D03500C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03510C31A7BD0012FB79 = F03D03510C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03520C31A7BD0012FB79 = F03D03520C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03530C31A7BD0012FB79 = F03D03530C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03540C31A7BD0012FB79 = F03D03540C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03550C31A7BD0012FB79 = F03D03550C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03560C31A7BD0012FB79 = F03D03560C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03570C31A7BD0012FB79 = F03D03570C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03580C31A7BD0012FB79 = F03D03580C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03590C31A7BD0012FB79 = F03D03590C31A7BD0012FB79 /* PBXTextBookmark */; + F03D035A0C31A7BD0012FB79 = F03D035A0C31A7BD0012FB79 /* PBXTextBookmark */; + F03D03830C31AF0A0012FB79 = F03D03830C31AF0A0012FB79 /* PBXTextBookmark */; + F03D03AC0C31B02D0012FB79 = F03D03AC0C31B02D0012FB79 /* PBXTextBookmark */; + F03D03AD0C31B02D0012FB79 = F03D03AD0C31B02D0012FB79 /* PBXTextBookmark */; + F03D03AF0C31B02D0012FB79 = F03D03AF0C31B02D0012FB79 /* PBXTextBookmark */; + F03D03B00C31B02D0012FB79 = F03D03B00C31B02D0012FB79 /* PBXTextBookmark */; + F03D03B10C31B02D0012FB79 = F03D03B10C31B02D0012FB79 /* PBXTextBookmark */; + F03D03B20C31B02D0012FB79 = F03D03B20C31B02D0012FB79 /* PBXTextBookmark */; + F03D03CC0C31B2B60012FB79 = F03D03CC0C31B2B60012FB79 /* PBXTextBookmark */; + F03D03DF0C31B31C0012FB79 = F03D03DF0C31B31C0012FB79 /* PBXTextBookmark */; + F03D03E00C31B31C0012FB79 = F03D03E00C31B31C0012FB79 /* PBXTextBookmark */; + F03D03E10C31B31C0012FB79 = F03D03E10C31B31C0012FB79 /* PBXTextBookmark */; + F03D046A0C31BD4A0012FB79 = F03D046A0C31BD4A0012FB79 /* PBXTextBookmark */; + F03D04720C31BE830012FB79 = F03D04720C31BE830012FB79 /* PBXTextBookmark */; + F03D04840C31D8590012FB79 = F03D04840C31D8590012FB79 /* PBXTextBookmark */; + F03D04850C31D8590012FB79 = F03D04850C31D8590012FB79 /* PBXTextBookmark */; + F03D04900C31D96E0012FB79 = F03D04900C31D96E0012FB79 /* PBXTextBookmark */; + F03D04910C31D96E0012FB79 = F03D04910C31D96E0012FB79 /* PBXTextBookmark */; + F03D04920C31D96E0012FB79 = F03D04920C31D96E0012FB79 /* PBXTextBookmark */; + F03D049A0C31DA340012FB79 = F03D049A0C31DA340012FB79 /* PBXTextBookmark */; + F05D24830C31DBBC00E573F1 /* PBXTextBookmark */ = F05D24830C31DBBC00E573F1 /* PBXTextBookmark */; + F05D24840C31DBBC00E573F1 /* PBXTextBookmark */ = F05D24840C31DBBC00E573F1 /* PBXTextBookmark */; + F05D24850C31DBBC00E573F1 /* PBXTextBookmark */ = F05D24850C31DBBC00E573F1 /* PBXTextBookmark */; + F05D24860C31DBBC00E573F1 /* PBXTextBookmark */ = F05D24860C31DBBC00E573F1 /* PBXTextBookmark */; + F05D24920C31DCFE00E573F1 /* PBXTextBookmark */ = F05D24920C31DCFE00E573F1 /* PBXTextBookmark */; + F05D24A00C31DF6600E573F1 /* PBXTextBookmark */ = F05D24A00C31DF6600E573F1 /* PBXTextBookmark */; + F05D24AF0C31E02A00E573F1 /* PBXTextBookmark */ = F05D24AF0C31E02A00E573F1 /* PBXTextBookmark */; + F05D24B00C31E02A00E573F1 /* PBXTextBookmark */ = F05D24B00C31E02A00E573F1 /* PBXTextBookmark */; + F05D24C00C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C00C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C10C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C10C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C20C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C20C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C30C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C30C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C40C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C40C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C50C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C50C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C60C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C60C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C70C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C70C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C80C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C80C31E2E200E573F1 /* PBXTextBookmark */; + F05D24C90C31E2E200E573F1 /* PBXTextBookmark */ = F05D24C90C31E2E200E573F1 /* PBXTextBookmark */; + F05D24CA0C31E2E200E573F1 /* PBXTextBookmark */ = F05D24CA0C31E2E200E573F1 /* PBXTextBookmark */; + F05D24CB0C31E2E200E573F1 /* PBXTextBookmark */ = F05D24CB0C31E2E200E573F1 /* PBXTextBookmark */; + F05D24D70C31E38600E573F1 /* PBXTextBookmark */ = F05D24D70C31E38600E573F1 /* PBXTextBookmark */; + F05D24D80C31E38600E573F1 /* PBXTextBookmark */ = F05D24D80C31E38600E573F1 /* PBXTextBookmark */; + F05D24D90C31E38600E573F1 /* PBXTextBookmark */ = F05D24D90C31E38600E573F1 /* PBXTextBookmark */; + F05D24DA0C31E38600E573F1 /* PBXTextBookmark */ = F05D24DA0C31E38600E573F1 /* PBXTextBookmark */; + F05D24DB0C31E38600E573F1 /* PBXTextBookmark */ = F05D24DB0C31E38600E573F1 /* PBXTextBookmark */; + F05D24DC0C31E38600E573F1 /* PBXTextBookmark */ = F05D24DC0C31E38600E573F1 /* PBXTextBookmark */; + F05D24DD0C31E38600E573F1 /* PBXTextBookmark */ = F05D24DD0C31E38600E573F1 /* PBXTextBookmark */; + F05D24DE0C31E38600E573F1 /* PBXTextBookmark */ = F05D24DE0C31E38600E573F1 /* PBXTextBookmark */; + F05D24E20C31E3A400E573F1 /* PBXTextBookmark */ = F05D24E20C31E3A400E573F1 /* PBXTextBookmark */; + F05D24E30C31E3A400E573F1 /* PBXTextBookmark */ = F05D24E30C31E3A400E573F1 /* PBXTextBookmark */; + F05D24E40C31E3A400E573F1 /* PBXTextBookmark */ = F05D24E40C31E3A400E573F1 /* PBXTextBookmark */; + F05D24E50C31E3A400E573F1 /* PBXTextBookmark */ = F05D24E50C31E3A400E573F1 /* PBXTextBookmark */; + }; + sourceControlManager = F03D01910C30A0DE0012FB79 /* Source Control */; + userBuildSettings = { + }; + }; + 29B97316FDCFA39411CA2CEA /* main.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 758}}"; + sepNavSelRange = "{636, 0}"; + sepNavVisRect = "{{0, 0}, {898, 758}}"; + }; + }; + 8D1107260486CEB800E47090 /* RExecServer */ = { + activeExec = 0; + executables = ( + F03D01850C30A0BF0012FB79 /* RExecServer */, + ); + }; + F03D01850C30A0BF0012FB79 /* RExecServer */ = { + isa = PBXExecutable; + activeArgIndex = 2147483647; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + configStateDict = { + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + { + active = YES; + name = EMACS; + value = t; + }, + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = RExecServer; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + }; + }; + F03D01910C30A0DE0012FB79 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + }; + scmType = ""; + }; + F03D01920C30A0DE0012FB79 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + F03D01A00C30A3AE0012FB79 /* RInterpreter.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {965, 672}}"; + sepNavSelRange = "{129, 0}"; + sepNavVisRect = "{{0, 0}, {965, 283}}"; + }; + }; + F03D01A10C30A3AE0012FB79 /* RInterpreter.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 3640}}"; + sepNavSelRange = "{6240, 277}"; + sepNavVisRect = "{{0, 2478}, {898, 758}}"; + }; + }; + F03D01F40C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 9"; + rLen = 0; + rLoc = 406; + rType = 0; + vrLen = 674; + vrLoc = 0; + }; + F03D01F50C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: sharedInterpreter"; + rLen = 0; + rLoc = 516; + rType = 0; + vrLen = 251; + vrLoc = 0; + }; + F03D01F60C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 17"; + rLen = 0; + rLoc = 702; + rType = 0; + vrLen = 354; + vrLoc = 0; + }; + F03D01F70C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: isConfigured"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 139; + vrLoc = 0; + }; + F03D01F80C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 17"; + rLen = 0; + rLoc = 702; + rType = 0; + vrLen = 354; + vrLoc = 0; + }; + F03D01F90C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: configured"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 137; + vrLoc = 0; + }; + F03D01FA0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: sharedInterpreter"; + rLen = 0; + rLoc = 1402; + rType = 0; + vrLen = 399; + vrLoc = 0; + }; + F03D01FB0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: isConfigured"; + rLen = 0; + rLoc = 495; + rType = 0; + vrLen = 159; + vrLoc = 0; + }; + F03D01FC0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 25"; + rLen = 0; + rLoc = 2232; + rType = 0; + vrLen = 454; + vrLoc = 0; + }; + F03D01FD0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: isConfigured"; + rLen = 0; + rLoc = 495; + rType = 0; + vrLen = 159; + vrLoc = 0; + }; + F03D01FE0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 30"; + rLen = 0; + rLoc = 1353; + rType = 0; + vrLen = 749; + vrLoc = 0; + }; + F03D01FF0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: bufferSize"; + rLen = 0; + rLoc = 953; + rType = 0; + vrLen = 239; + vrLoc = 0; + }; + F03D02000C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 34"; + rLen = 0; + rLoc = 1353; + rType = 0; + vrLen = 752; + vrLoc = 0; + }; + F03D02010C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: configured"; + rLen = 0; + rLoc = 281; + rType = 0; + vrLen = 254; + vrLoc = 0; + }; + F03D02020C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 32"; + rLen = 0; + rLoc = 811; + rType = 0; + vrLen = 773; + vrLoc = 0; + }; + F03D02030C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: ptr_R_OldReadConsole"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 317; + vrLoc = 0; + }; + F03D02040C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 34"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 778; + vrLoc = 0; + }; + F03D02050C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: ptr_R_OldReadConsole"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 317; + vrLoc = 0; + }; + F03D02060C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 34"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 795; + vrLoc = 0; + }; + F03D02070C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: ptr_R_OldReadConsole"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 317; + vrLoc = 0; + }; + F03D02080C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 35"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 841; + vrLoc = 0; + }; + F03D02090C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: lastPrompt"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 340; + vrLoc = 0; + }; + F03D020A0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 35"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 773; + vrLoc = 139; + }; + F03D020B0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: console"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 343; + vrLoc = 0; + }; + F03D020C0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 87"; + rLen = 0; + rLoc = 5412; + rType = 0; + vrLen = 1471; + vrLoc = 891; + }; + F03D020D0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: ptr_R_OldWriteConsole"; + rLen = 0; + rLoc = 456; + rType = 0; + vrLen = 385; + vrLoc = 0; + }; + F03D020E0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 92"; + rLen = 0; + rLoc = 5412; + rType = 0; + vrLen = 1551; + vrLoc = 921; + }; + F03D020F0C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: allowTerminal"; + rLen = 0; + rLoc = 953; + rType = 0; + vrLen = 449; + vrLoc = 0; + }; + F03D02100C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 52"; + rLen = 0; + rLoc = 2231; + rType = 0; + vrLen = 902; + vrLoc = 329; + }; + F03D02110C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: preparedStatements"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 488; + vrLoc = 0; + }; + F03D02120C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 52"; + rLen = 0; + rLoc = 2231; + rType = 0; + vrLen = 902; + vrLoc = 329; + }; + F03D02130C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: variablesInEnvironment:"; + rLen = 0; + rLoc = 953; + rType = 0; + vrLen = 935; + vrLoc = 0; + }; + F03D02140C30C5080012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "#import \"RInterpreter.h\""; + rLen = 25; + rLoc = 24; + rType = 0; + vrLen = 699; + vrLoc = 0; + }; + F03D023F0C30C5FC0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: ptr_R_OldWriteConsole"; + rLen = 0; + rLoc = 392; + rType = 0; + vrLen = 906; + vrLoc = 0; + }; + F03D02400C30C5FC0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 40"; + rLen = 0; + rLoc = 1340; + rType = 0; + vrLen = 885; + vrLoc = 633; + }; + F03D02410C30C5FC0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: 8"; + rLen = 0; + rLoc = 457; + rType = 0; + vrLen = 872; + vrLoc = 0; + }; + F03D02420C30C5FC0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 49"; + rLen = 0; + rLoc = 1602; + rType = 0; + vrLen = 690; + vrLoc = 403; + }; + F03D02430C30C5FC0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: buffer"; + rLen = 0; + rLoc = 456; + rType = 0; + vrLen = 908; + vrLoc = 0; + }; + F03D025A0C30C68A0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "if(YES == allowTerminal) {"; + rLen = 28; + rLoc = 4276; + rType = 0; + vrLen = 1522; + vrLoc = 1783; + }; + F03D025B0C30C68A0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: configured"; + rLen = 0; + rLoc = 281; + rType = 0; + vrLen = 922; + vrLoc = 0; + }; + F03D02650C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 126"; + rLen = 0; + rLoc = 6519; + rType = 0; + vrLen = 1069; + vrLoc = 2470; + }; + F03D02660C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: configured"; + rLen = 0; + rLoc = 281; + rType = 0; + vrLen = 922; + vrLoc = 0; + }; + F03D02670C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 126"; + rLen = 0; + rLoc = 6519; + rType = 0; + vrLen = 690; + vrLoc = 0; + }; + F03D02680C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: configured"; + rLen = 0; + rLoc = 87; + rType = 0; + vrLen = 871; + vrLoc = 0; + }; + F03D02690C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 126"; + rLen = 0; + rLoc = 6519; + rType = 0; + vrLen = 690; + vrLoc = 0; + }; + F03D026A0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D026B0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 129"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1247; + vrLoc = 2402; + }; + F03D026C0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D026D0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 130"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1267; + vrLoc = 2402; + }; + F03D026E0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D026F0C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 131"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1294; + vrLoc = 2402; + }; + F03D02700C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D02710C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 131"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1309; + vrLoc = 2402; + }; + F03D02720C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D02730C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: readConsole:length:prompt:addToHistory:"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1102; + vrLoc = 2636; + }; + F03D02740C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D02750C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: readConsole:length:prompt:addToHistory:"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1117; + vrLoc = 2636; + }; + F03D02760C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerPrompt"; + rLen = 0; + rLoc = 63; + rType = 0; + vrLen = 807; + vrLoc = 0; + }; + F03D02770C30CB870012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 133"; + rLen = 0; + rLoc = 6185; + rType = 0; + vrLen = 1156; + vrLoc = 2636; + }; + F03D027F0C30CE3D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: 9"; + rLen = 0; + rLoc = 233; + rType = 0; + vrLen = 823; + vrLoc = 0; + }; + F03D02800C30CE3D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 130"; + rLen = 0; + rLoc = 5411; + rType = 0; + vrLen = 1243; + vrLoc = 2610; + }; + F03D02810C30CE3D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: 9"; + rLen = 0; + rLoc = 233; + rType = 0; + vrLen = 823; + vrLoc = 0; + }; + F03D028C0C30CE700012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 131"; + rLen = 0; + rLoc = 5412; + rType = 0; + vrLen = 1323; + vrLoc = 2610; + }; + F03D028D0C30CE700012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerThread"; + rLen = 0; + rLoc = 233; + rType = 0; + vrLen = 847; + vrLoc = 0; + }; + F03D029D0C30CFB30012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 148"; + rLen = 0; + rLoc = 6525; + rType = 0; + vrLen = 1215; + vrLoc = 2948; + }; + F03D029E0C30CFB30012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: evaluateInput:"; + rLen = 0; + rLoc = 952; + rType = 0; + vrLen = 691; + vrLoc = 0; + }; + F03D02A40C30D0090012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 70"; + rLen = 0; + rLoc = 2780; + rType = 0; + vrLen = 676; + vrLoc = 701; + }; + F03D02A50C30D0090012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: evaluateInput:"; + rLen = 0; + rLoc = 952; + rType = 0; + vrLen = 691; + vrLoc = 0; + }; + F03D02DF0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 71"; + rLen = 0; + rLoc = 2343; + rType = 0; + vrLen = 811; + vrLoc = 1020; + }; + F03D02E00C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBuffer"; + rLen = 0; + rLoc = 128; + rType = 0; + vrLen = 708; + vrLoc = 0; + }; + F03D02E10C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: evaluateOldReader"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 774; + vrLoc = 248; + }; + F03D02E20C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02E30C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 163"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1098; + vrLoc = 3475; + }; + F03D02E40C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02E50C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 163"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1115; + vrLoc = 3475; + }; + F03D02E60C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02E70C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 163"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1138; + vrLoc = 3475; + }; + F03D02E80C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02E90C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 163"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1152; + vrLoc = 3475; + }; + F03D02EA0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02EB0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 165"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 946; + vrLoc = 3749; + }; + F03D02EC0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02ED0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 163"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 969; + vrLoc = 3749; + }; + F03D02EE0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D02EF0C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "readerBufferUsed = ptr_R_OldReadConsole(readerPrompt,readerTemp,readerLength,readerAddToHistory);"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 937; + vrLoc = 4305; + }; + F03D02F00C30D3810012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: readerBufferLength"; + rLen = 0; + rLoc = 176; + rType = 0; + vrLen = 725; + vrLoc = 0; + }; + F03D03000C31A16D0012FB79 /* RApplication.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 758}}"; + sepNavSelRange = "{208, 0}"; + sepNavVisRect = "{{0, 0}, {898, 758}}"; + }; + }; + F03D03010C31A16D0012FB79 /* RApplication.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 758}}"; + sepNavSelRange = "{395, 0}"; + sepNavVisRect = "{{0, 0}, {898, 758}}"; + }; + }; + F03D03110C31A2700012FB79 /* RApplicationDelegate.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 758}}"; + sepNavSelRange = "{225, 0}"; + sepNavVisRect = "{{0, 0}, {898, 758}}"; + }; + }; + F03D03120C31A2700012FB79 /* RApplicationDelegate.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {898, 758}}"; + sepNavSelRange = "{749, 0}"; + sepNavVisRect = "{{0, 0}, {898, 758}}"; + }; + }; + F03D03220C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + name = "Info.plist: 29"; + rLen = 0; + rLoc = 894; + rType = 0; + vrLen = 848; + vrLoc = 0; + }; + F03D03260C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: allowTerminal"; + rLen = 0; + rLoc = 1715; + rType = 0; + vrLen = 1447; + vrLoc = 4102; + }; + F03D03270C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03000C31A16D0012FB79 /* RApplication.h */; + name = "RApplication.h: 12"; + rLen = 0; + rLoc = 208; + rType = 0; + vrLen = 220; + vrLoc = 0; + }; + F03D03280C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03010C31A16D0012FB79 /* RApplication.m */; + name = "RApplication.m: 22"; + rLen = 0; + rLoc = 395; + rType = 0; + vrLen = 395; + vrLoc = 0; + }; + F03D03290C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + name = "Info.plist: 29"; + rLen = 0; + rLoc = 894; + rType = 0; + vrLen = 848; + vrLoc = 0; + }; + F03D032A0C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03110C31A2700012FB79 /* RApplicationDelegate.h */; + name = "RApplicationDelegate.h: 15"; + rLen = 0; + rLoc = 225; + rType = 0; + vrLen = 231; + vrLoc = 0; + }; + F03D032B0C31A4490012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 17"; + rLen = 0; + rLoc = 477; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F03D034B0C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03110C31A2700012FB79 /* RApplicationDelegate.h */; + name = "RApplicationDelegate.h: 15"; + rLen = 0; + rLoc = 225; + rType = 0; + vrLen = 231; + vrLoc = 0; + }; + F03D034C0C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03000C31A16D0012FB79 /* RApplication.h */; + name = "RApplication.h: 12"; + rLen = 0; + rLoc = 208; + rType = 0; + vrLen = 220; + vrLoc = 0; + }; + F03D03500C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: 36"; + rLen = 0; + rLoc = 874; + rType = 0; + vrLen = 817; + vrLoc = 0; + }; + F03D03510C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 52"; + rLen = 0; + rLoc = 1132; + rType = 0; + vrLen = 1329; + vrLoc = 495; + }; + F03D03520C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03110C31A2700012FB79 /* RApplicationDelegate.h */; + name = "RApplicationDelegate.h: 15"; + rLen = 0; + rLoc = 225; + rType = 0; + vrLen = 231; + vrLoc = 0; + }; + F03D03530C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 18"; + rLen = 0; + rLoc = 478; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F03D03540C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 77"; + rLen = 0; + rLoc = 2129; + rType = 0; + vrLen = 1642; + vrLoc = 495; + }; + F03D03550C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 18"; + rLen = 0; + rLoc = 478; + rType = 0; + vrLen = 691; + vrLoc = 0; + }; + F03D03560C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03000C31A16D0012FB79 /* RApplication.h */; + name = "RApplication.h: 12"; + rLen = 0; + rLoc = 208; + rType = 0; + vrLen = 220; + vrLoc = 0; + }; + F03D03570C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: 25"; + rLen = 0; + rLoc = 609; + rType = 0; + vrLen = 909; + vrLoc = 0; + }; + F03D03580C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "[ri setDelegate:self];"; + rLen = 24; + rLoc = 454; + rType = 0; + vrLen = 691; + vrLoc = 0; + }; + F03D03590C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 77"; + rLen = 0; + rLoc = 2129; + rType = 0; + vrLen = 1642; + vrLoc = 495; + }; + F03D035A0C31A7BD0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: delegate"; + rLen = 0; + rLoc = 608; + rType = 0; + vrLen = 960; + vrLoc = 0; + }; + F03D03830C31AF0A0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 184"; + rLen = 0; + rLoc = 5525; + rType = 0; + vrLen = 1701; + vrLoc = 4512; + }; + F03D03AC0C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 1026; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F03D03AD0C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: delegate"; + rLen = 0; + rLoc = 608; + rType = 0; + vrLen = 960; + vrLoc = 0; + }; + F03D03AF0C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 1026; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F03D03B00C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: delegate"; + rLen = 0; + rLoc = 608; + rType = 0; + vrLen = 960; + vrLoc = 0; + }; + F03D03B10C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: writeConsole:length:"; + rLen = 0; + rLoc = 5470; + rType = 0; + vrLen = 1293; + vrLoc = 143; + }; + F03D03B20C31B02D0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A00C30A3AE0012FB79 /* RInterpreter.h */; + name = "RInterpreter.h: delegate"; + rLen = 0; + rLoc = 608; + rType = 0; + vrLen = 960; + vrLoc = 0; + }; + F03D03C30C31B1D30012FB79 /* XCBreakpointsBucket */ = { + isa = XCBreakpointsBucket; + name = "Project Breakpoints"; + objects = ( + ); + }; + F03D03CC0C31B2B60012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 169"; + rLen = 0; + rLoc = 4842; + rType = 0; + vrLen = 1875; + vrLoc = 4236; + }; + F03D03DF0C31B31C0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03010C31A16D0012FB79 /* RApplication.m */; + name = "RApplication.m: 22"; + rLen = 0; + rLoc = 395; + rType = 0; + vrLen = 395; + vrLoc = 0; + }; + F03D03E00C31B31C0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F03D03E10C31B31C0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03010C31A16D0012FB79 /* RApplication.m */; + name = "RApplication.m: 22"; + rLen = 0; + rLoc = 395; + rType = 0; + vrLen = 395; + vrLoc = 0; + }; + F03D046A0C31BD4A0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 150"; + rLen = 0; + rLoc = 4227; + rType = 0; + vrLen = 2003; + vrLoc = 3650; + }; + F03D04720C31BE830012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F03D04840C31D8590012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 222"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1462; + vrLoc = 5827; + }; + F03D04850C31D8590012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F03D04900C31D96E0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 222"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1412; + vrLoc = 5777; + }; + F03D04910C31D96E0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F03D04920C31D96E0012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 222"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1412; + vrLoc = 5777; + }; + F03D049A0C31DA340012FB79 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24830C31DBBC00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24840C31DBBC00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 222"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1412; + vrLoc = 5777; + }; + F05D24850C31DBBC00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24860C31DBBC00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 222"; + rLen = 0; + rLoc = 6214; + rType = 0; + vrLen = 1412; + vrLoc = 5777; + }; + F05D24920C31DCFE00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: readyToEvaluate"; + rLen = 0; + rLoc = 495; + rType = 0; + vrLen = 1333; + vrLoc = 168; + }; + F05D24A00C31DF6600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 199"; + rLen = 0; + rLoc = 5998; + rType = 0; + vrLen = 1815; + vrLoc = 4443; + }; + F05D24A70C31E01B00E573F1 /* RInterpreter.m */ = { + isa = PBXFileReference; + name = RInterpreter.m; + path = /Users/bcellis/Projects/RExecServer/RInterpreter.m; + sourceTree = ""; + }; + F05D24AF0C31E02A00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F05D24A70C31E01B00E573F1 /* RInterpreter.m */; + rLen = 1; + rLoc = 236; + rType = 1; + }; + F05D24B00C31E02A00E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 201"; + rLen = 0; + rLoc = 6050; + rType = 0; + vrLen = 1790; + vrLoc = 5284; + }; + F05D24C00C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: readConsoleWithPrompt:buffer:length:history:"; + rLen = 0; + rLoc = 6131; + rType = 0; + vrLen = 1817; + vrLoc = 5284; + }; + F05D24C10C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03110C31A2700012FB79 /* RApplicationDelegate.h */; + name = "RApplicationDelegate.h: 15"; + rLen = 0; + rLoc = 225; + rType = 0; + vrLen = 231; + vrLoc = 0; + }; + F05D24C20C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + name = "Info.plist: 28"; + rLen = 0; + rLoc = 876; + rType = 0; + vrLen = 894; + vrLoc = 0; + }; + F05D24C30C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = applicationDidFinishLaunching; + rLen = 29; + rLoc = 620; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F05D24C40C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24C50C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: readConsoleWithPrompt:buffer:length:history:"; + rLen = 0; + rLoc = 6131; + rType = 0; + vrLen = 1817; + vrLoc = 5284; + }; + F05D24C60C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 10"; + rLen = 0; + rLoc = 157; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24C70C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03110C31A2700012FB79 /* RApplicationDelegate.h */; + name = "RApplicationDelegate.h: 15"; + rLen = 0; + rLoc = 225; + rType = 0; + vrLen = 231; + vrLoc = 0; + }; + F05D24C80C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 21"; + rLen = 0; + rLoc = 610; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F05D24C90C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + name = "Info.plist: 28"; + rLen = 0; + rLoc = 876; + rType = 0; + vrLen = 894; + vrLoc = 0; + }; + F05D24CA0C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = applicationDidFinishLaunching; + rLen = 29; + rLoc = 620; + rType = 0; + vrLen = 711; + vrLoc = 0; + }; + F05D24CB0C31E2E200E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 797; + vrLoc = 0; + }; + F05D24D70C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 211"; + rLen = 277; + rLoc = 6240; + rType = 0; + vrLen = 1817; + vrLoc = 5284; + }; + F05D24D80C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 749; + rType = 0; + vrLen = 1035; + vrLoc = 0; + }; + F05D24D90C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 857; + vrLoc = 0; + }; + F05D24DA0C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 857; + vrLoc = 0; + }; + F05D24DB0C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 1026; + rType = 0; + vrLen = 692; + vrLoc = 0; + }; + F05D24DC0C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; + name = "RInterpreter.m: 211"; + rLen = 277; + rLoc = 6240; + rType = 0; + vrLen = 1817; + vrLoc = 5284; + }; + F05D24DD0C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 749; + rType = 0; + vrLen = 1035; + vrLoc = 0; + }; + F05D24DE0C31E38600E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 21"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 859; + vrLoc = 0; + }; + F05D24E20C31E3A400E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24E30C31E3A400E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 749; + rType = 0; + vrLen = 1035; + vrLoc = 0; + }; + F05D24E40C31E3A400E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 20"; + rLen = 0; + rLoc = 636; + rType = 0; + vrLen = 771; + vrLoc = 0; + }; + F05D24E50C31E3A400E573F1 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; + name = "RApplicationDelegate.m: 23"; + rLen = 0; + rLoc = 749; + rType = 0; + vrLen = 1035; + vrLoc = 0; + }; +} diff --git a/RExecServer.xcodeproj/project.pbxproj b/RExecServer.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bc9cfbf --- /dev/null +++ b/RExecServer.xcodeproj/project.pbxproj @@ -0,0 +1,300 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + F03D01940C30A0E90012FB79 /* R.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F03D01930C30A0E90012FB79 /* R.framework */; }; + F03D01A20C30A3AE0012FB79 /* RInterpreter.m in Sources */ = {isa = PBXBuildFile; fileRef = F03D01A10C30A3AE0012FB79 /* RInterpreter.m */; }; + F03D03020C31A16D0012FB79 /* RApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = F03D03010C31A16D0012FB79 /* RApplication.m */; }; + F03D03130C31A2700012FB79 /* RApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F03D03120C31A2700012FB79 /* RApplicationDelegate.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* RExecServer_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RExecServer_Prefix.pch; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* RExecServer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RExecServer.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F03D01930C30A0E90012FB79 /* R.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = R.framework; path = /Library/Frameworks/R.framework; sourceTree = ""; }; + F03D01A00C30A3AE0012FB79 /* RInterpreter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RInterpreter.h; sourceTree = ""; }; + F03D01A10C30A3AE0012FB79 /* RInterpreter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RInterpreter.m; sourceTree = ""; }; + F03D03000C31A16D0012FB79 /* RApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RApplication.h; sourceTree = ""; }; + F03D03010C31A16D0012FB79 /* RApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RApplication.m; sourceTree = ""; }; + F03D03110C31A2700012FB79 /* RApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RApplicationDelegate.h; sourceTree = ""; }; + F03D03120C31A2700012FB79 /* RApplicationDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RApplicationDelegate.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + F03D01940C30A0E90012FB79 /* R.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* R Interpreter Interface */ = { + isa = PBXGroup; + children = ( + F03D01A00C30A3AE0012FB79 /* RInterpreter.h */, + F03D01A10C30A3AE0012FB79 /* RInterpreter.m */, + ); + name = "R Interpreter Interface"; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + F03D01930C30A0E90012FB79 /* R.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* RExecServer.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* RExecServer */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* R Interpreter Interface */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = RExecServer; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32CA4F630368D1EE00C91783 /* RExecServer_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + F03D03000C31A16D0012FB79 /* RApplication.h */, + F03D03010C31A16D0012FB79 /* RApplication.m */, + F03D03110C31A2700012FB79 /* RApplicationDelegate.h */, + F03D03120C31A2700012FB79 /* RApplicationDelegate.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 8D1107310486CEB800E47090 /* Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* RExecServer */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RExecServer" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RExecServer; + productInstallPath = "$(HOME)/Applications"; + productName = RExecServer; + productReference = 8D1107320486CEB800E47090 /* RExecServer.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RExecServer" */; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* RExecServer */; + projectDirPath = ""; + targets = ( + 8D1107260486CEB800E47090 /* RExecServer */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072D0486CEB800E47090 /* main.m in Sources */, + F03D01A20C30A3AE0012FB79 /* RInterpreter.m in Sources */, + F03D03020C31A16D0012FB79 /* RApplication.m in Sources */, + F03D03130C31A2700012FB79 /* RApplicationDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { + isa = PBXVariantGroup; + children = ( + 29B97319FDCFA39411CA2CEA /* English */, + ); + name = MainMenu.nib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_FAST_OBJC_DISPATCH = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + HEADER_SEARCH_PATHS = /Library/Frameworks/R.framework/Headers; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = RExecServer; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_FAST_OBJC_DISPATCH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + HEADER_SEARCH_PATHS = /Library/Frameworks/R.framework/Headers; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = RExecServer; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RExecServer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RExecServer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/RExecServer_Prefix.pch b/RExecServer_Prefix.pch new file mode 100644 index 0000000..71ad823 --- /dev/null +++ b/RExecServer_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'RExecServer' target in the 'RExecServer' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/RInterpreter.h b/RInterpreter.h new file mode 100644 index 0000000..797537f --- /dev/null +++ b/RInterpreter.h @@ -0,0 +1,47 @@ +#import + +@interface RInterpreter : NSObject { + + char *readerPrompt; + unsigned char *readerBuffer,*readerTemp; + int readerBufferLength,readerBufferUsed; + int readerAddToHistory; + pthread_t readerThread; + + + BOOL configured,suppressOutput,allowTerminal; + long bufferSize; + int (*ptr_R_OldReadConsole)(char*,unsigned char*,int,int); + void (*ptr_R_OldWriteConsole)(char*,int); + NSMutableAttributedString *buffer; + + id delegate; +} ++ (RInterpreter*)sharedInterpreter; +- (BOOL)isConfigured; +- (void)run; + +#pragma mark Configuration + +- (void)setDelegate:(id)delegate; +- (id)delegate; + +- (void)setBufferSize:(long)bufferSize; +- (long)bufferSize; + +- (void)setAllowTerminal:(BOOL)aBool; +- (BOOL)allowTerminal; + +- (void)setHomePath:(NSString*)aPath; +- (NSString*)homePath; + +- (void)setLocaleIdentifier:(NSString*)aLocale; +- (NSString*)localeIdentifier; + + +#pragma mark Interaction Protocol + +- (void)evaluateInput:(NSString*)aString; + + +@end diff --git a/RInterpreter.m b/RInterpreter.m new file mode 100644 index 0000000..8d310e6 --- /dev/null +++ b/RInterpreter.m @@ -0,0 +1,259 @@ +// +// RInterpreter.m +// RExecServer +// +// Created by Byron Ellis on 6/25/07. +// Copyright 2007 __MyCompanyName__. All rights reserved. +// + +#import "RInterpreter.h" + +#define R_INTERFACE_PTRS 1 +#define CSTACK_DEFNS 1 + +#include +#include +#include +#include +#include +#include + +#include +#include + +#undef Boolean + +@interface RInterpreter (Private) +- (void)configure; +- (void)readyToEvaluate; + +@end + +@implementation RInterpreter + ++ (RInterpreter*)sharedInterpreter { + static RInterpreter *interp = nil; + if(nil == interp) interp = [[RInterpreter alloc] init]; + return interp; +} + +- (id)init { + if(nil == [super init]) return nil; + + //Some configuration defaults + bufferSize = 2048; + buffer = [[NSMutableAttributedString alloc] init]; + suppressOutput = NO; + ptr_R_OldReadConsole = NULL; + ptr_R_OldWriteConsole= NULL; + allowTerminal = NO; + delegate = nil; + + //Set some environment variables to their defaults if they are not presently set. + setenv("R_HOME",[[[NSBundle bundleWithIdentifier:@"org.r-project.R-framework"] resourcePath] UTF8String],0); + setenv("LANG",[[NSString stringWithFormat:@"%@.UTF-8",[[NSLocale currentLocale] localeIdentifier]] UTF8String],0); + return self; +} + + + +- (BOOL)isConfigured { return configured; } + +- (id)delegate { return delegate; } +- (void)setDelegate:(id)aDelegate { delegate = aDelegate; } + +- (long)bufferSize { return bufferSize; } +- (void)setBufferSize:(long)aSize { + bufferSize = aSize; +} +- (BOOL)allowTerminal { return allowTerminal; } +- (void)setAllowTerminal:(BOOL)aBool { allowTerminal = aBool; } + +- (NSString*)homePath { return (NULL == getenv("R_HOME")) ? nil : [NSString stringWithUTF8String:getenv("R_HOME")]; } +- (void)setHomePath:(NSString*)aPath { + setenv("R_HOME",[aPath UTF8String],1); +} + +- (NSString*)localeIdentifier { return (NULL == getenv("LANG")) ? nil : [NSString stringWithUTF8String:getenv("LANG")]; } +- (void)setLocaleIdentifier:(NSString*)aLocale { + setenv("LANG",[aLocale UTF8String],1); +} + +- (void)run { + if(NO == [self isConfigured]) [self configure]; + setup_Rmainloop(); + run_Rmainloop(); +} + + +- (void)evaluateInput:(NSString*)aString { + @synchronized(self) { + //Kill the Terminal if it's being read. + if(NULL != readerThread) { + pthread_kill(readerThread,SIGKILL); + readerThread = NULL; + if(NULL == readerTemp) free(readerTemp); + } + readerBufferUsed = [aString length]; + if(readerBufferUsed > readerBufferLength) + readerBufferUsed = readerBufferLength-1; + memcpy(readerBuffer,[aString UTF8String],sizeof(unsigned char*)*readerBufferUsed); + readerBuffer[readerBufferUsed] = '\0'; //Just in case. + } + [self readyToEvaluate]; +} + + + +@end + + +#pragma mark Function Prototypes +void RInterp_Suicide(char*); +void RInterp_ShowMessage(char*); +void RInterp_FlushConsole(); +void RInterp_WritePrompt(char*); +int RInterp_ReadConsole(char*,unsigned char*,int,int); +void RInterp_ResetConsole(); +void RInterp_WriteConsole(char*,int); +void RInterp_ClearerrConsole(); +void RInterp_Busy(); +void RInterp_CleanUp(SA_TYPE,int,int); +int RInterp_ShowFiles(int,char**,char**,char*,Rboolean,char*); +int RInterp_ChooseFile(int,char*,int); +int RInterp_EditFile(char*); +void RInterp_System(char*); +void RInterp_ProcessEvents(); +Rboolean RInterp_Device(NewDevDesc*,char*,double,double,double,char*,Rboolean,Rboolean,int,int); +void RInterp_DeviceParams(double*,double*,double*,char*,Rboolean*,Rboolean*,int*); +int RInterp_CustomPrint(char *,SEXP); + +void *RInterp_TerminalReader(void*data); + +extern void (*ptr_R_ProcessEvents)(void); +extern void (*ptr_CocoaSystem)(char*); +extern Rboolean (*ptr_CocoaInnerQuartzDevice)(NewDevDesc*,char*,double,double,double,char*,Rboolean,Rboolean,int,int); +extern void (*ptr_CocoaGetQuartzParameters)(double*,double*,double*,char*,Rboolean*,Rboolean*,int*); +extern int (*ptr_Raqua_CustomPrint)(char *, SEXP); + +extern void Rstd_WriteConsole(char*,int); + +@implementation RInterpreter (Private) + +- (void)_dummy { } + +- (void)configure { + char *argv[] = {"R","--gui=cocoa","--no-save","--no-restore-data",0}; + Rf_initialize_R(4,argv); + R_Interactive = 1; + NSLog(@"R_CStackLimit = %d",R_CStackLimit); + + if(YES == allowTerminal) { + ptr_R_OldReadConsole = ptr_R_ReadConsole; + ptr_R_OldWriteConsole= Rstd_WriteConsole; + } + R_Outputfile = NULL; + R_Consolefile = NULL; + + +#ifdef R_USING_TRAMPOLINE +//On systems supporting libffi we can generate a direct trampoline +//function that dispatches to the R level +#else + ptr_R_Suicide = RInterp_Suicide; + ptr_R_ShowMessage = RInterp_ShowMessage; + ptr_R_ReadConsole = RInterp_ReadConsole; + ptr_R_WriteConsole = RInterp_WriteConsole; + ptr_R_WriteConsoleEx = NULL; + ptr_R_ShowFiles = RInterp_ShowFiles; + ptr_R_EditFile = RInterp_EditFile; + ptr_R_ChooseFile = RInterp_ChooseFile; + ptr_Raqua_CustomPrint = RInterp_CustomPrint; + ptr_R_ProcessEvents = RInterp_ProcessEvents; + ptr_CocoaInnerQuartzDevice = RInterp_Device; + ptr_CocoaGetQuartzParameters = RInterp_DeviceParams; + ptr_CocoaSystem = RInterp_System; +#endif + + //Put ourselves into a multithreaded state + [NSThread detachNewThreadSelector:@selector(_dummy) toTarget:self withObject:nil]; +} + +- (void)writeConsole:(char*)output length:(int)aLength { + //Write out to the console if we're using a terminal + if(YES == allowTerminal && ptr_R_OldWriteConsole) + ptr_R_OldWriteConsole(output,aLength); + +} + +- (int)readConsoleWithPrompt:(char*)aPrompt buffer:(unsigned char*)aBuffer length:(int)aLength history:(int)useHistory { + //Put those there for something that wants to write a string + readerPrompt = aPrompt; + readerBuffer = aBuffer; + readerBufferLength = aLength; + readerAddToHistory = useHistory; + + + if(YES == allowTerminal) { + R_PolledEvents = RInterp_ProcessEvents; + R_wait_usec = 100000; + readerBufferUsed = ptr_R_OldReadConsole(readerPrompt,readerBuffer,readerBufferLength,readerAddToHistory); + } else { + [NSApp run]; + } + return readerBufferUsed; +} + +- (void)flushConsole { +} + +- (void)readyToEvaluate { + [NSApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined + location:NSMakePoint(0,0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:1337 + data1:0 + data2:0] atStart:NO]; +} + +@end + +#ifdef R_USING_TRAMPOLINE +#else +void RInterp_Suicide(char*aMsg) { [[RInterpreter sharedInterpreter] suicide:aMsg]; } +void RInterp_ShowMessage(char*aMsg) { [[RInterpreter sharedInterpreter] showMessage:aMsg]; } +void RInterp_FlushConsole() { [[RInterpreter sharedInterpreter] flushConsole]; } +int RInterp_ReadConsole(char*prompt,unsigned char*buffer,int length,int history) { + return [[RInterpreter sharedInterpreter] readConsoleWithPrompt:prompt buffer:buffer length:length history:history]; +} +void RInterp_ResetConsole() { [[RInterpreter sharedInterpreter] resetConsole]; } +void RInterp_WriteConsole(char*buffer,int length) { [[RInterpreter sharedInterpreter] writeConsole:buffer length:length]; } +void RInterp_ClearerrConsole() { [[RInterpreter sharedInterpreter] clearErrorConsole]; } +void RInterp_Busy() { [[RInterpreter sharedInterpreter] busy]; } +void RInterp_CleanUp(SA_TYPE type,int a,int b) { } +int RInterp_ShowFiles(int a,char**b,char**c,char*d,Rboolean e,char*f) { } +int RInterp_ChooseFile(int a,char*b,int c) { } +int RInterp_EditFile(char*a) { } +void RInterp_System(char*a) { } +void RInterp_ProcessEvents() { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + [NSApp postEvent:[NSEvent otherEventWithType:NSApplicationDefined + location:NSMakePoint(0,0) + modifierFlags:0 + timestamp:0 + windowNumber:0 + context:nil + subtype:1337 + data1:0 + data2:0] atStart:NO]; + [NSApp run]; + [pool release]; +} +Rboolean RInterp_Device(NewDevDesc*a,char*b,double c,double d,double e,char*f,Rboolean g,Rboolean h,int i ,int j) { return 0; } +void RInterp_DeviceParams(double*a,double*b,double*c,char*d,Rboolean*e,Rboolean*f,int*g) { } +int RInterp_CustomPrint(char *a,SEXP b) { return 0; } +#endif + diff --git a/main.m b/main.m new file mode 100644 index 0000000..2d211d9 --- /dev/null +++ b/main.m @@ -0,0 +1,25 @@ +#import +#import "RInterpreter.h" + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; + Class Main = NSClassFromString([info objectForKey:@"NSPrincipalClass"]); + if(nil == main) { + NSLog(@"Unable to locate principal class: %@",[info objectForKey:@"NSPrincipalClass"]); + return 1; + } + //Let the application run its setup procedures + [Main sharedApplication]; + [NSBundle loadNibNamed:[info objectForKey:@"NSMainNibFile"] owner:NSApp]; + [NSApp run]; + [pool release]; + //Turn primary control over to the R event loop. + [[RInterpreter sharedInterpreter] run]; + return 0; +} -- 2.11.4.GIT