├── RegexTester ├── en.lproj │ ├── InfoPlist.strings │ └── Credits.rtf ├── status-none.tiff ├── status-valid.tiff ├── status-invalid.tiff ├── RegexTester-Prefix.pch ├── main.m ├── AppDelegate.h ├── RegexTester-Info.plist └── AppDelegate.m └── RegexTester.xcodeproj ├── project.xcworkspace └── contents.xcworkspacedata └── project.pbxproj /RegexTester/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /RegexTester/status-none.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nst/regextester/master/RegexTester/status-none.tiff -------------------------------------------------------------------------------- /RegexTester/status-valid.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nst/regextester/master/RegexTester/status-valid.tiff -------------------------------------------------------------------------------- /RegexTester/status-invalid.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nst/regextester/master/RegexTester/status-invalid.tiff -------------------------------------------------------------------------------- /RegexTester/RegexTester-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'RegexTester' target in the 'RegexTester' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /RegexTester.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RegexTester/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RegexTester 4 | // 5 | // Created by Marc Liyanage on 7/21/12. 6 | // 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **)argv); 14 | } 15 | -------------------------------------------------------------------------------- /RegexTester/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1187 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \vieww9600\viewh8400\viewkind0 5 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc 6 | 7 | \f0\fs24 \cf0 http://github.com/liyanage/regextester} -------------------------------------------------------------------------------- /RegexTester/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RegexTester 4 | // 5 | // Created by Marc Liyanage on 7/21/12. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : NSObject 12 | 13 | @property (assign) IBOutlet NSWindow *window; 14 | @property (weak) IBOutlet NSTextField *regexTextField; 15 | 16 | @property (strong) IBOutlet NSTextView *inputTextView; 17 | 18 | @property (strong) NSString *regexString; 19 | @property (strong) NSString *inputString; 20 | @property (readonly) NSString *resultString; 21 | @property (readonly) NSImage *regexStatusImage; 22 | 23 | @property (assign) BOOL optionCaseInsensitive; 24 | @property (assign) BOOL optionAllowCommentsAndWhitespace; 25 | @property (assign) BOOL optionIgnoreMetacharacters; 26 | @property (assign) BOOL optionDotMatchesLineSeparators; 27 | @property (assign) BOOL optionAnchorsMatchLines; 28 | @property (assign) BOOL optionUseUnixLineSeparators; 29 | @property (assign) BOOL optionUseUnicodeWordBoundaries; 30 | 31 | @property (weak) IBOutlet NSObjectController *controller; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /RegexTester/RegexTester-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | ch.entropy.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | ${MACOSX_DEPLOYMENT_TARGET} 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /RegexTester/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // RegexTester 4 | // 5 | // Created by Marc Liyanage on 7/21/12. 6 | // 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @implementation AppDelegate 12 | 13 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification 14 | { 15 | [self.inputTextView setContinuousSpellCheckingEnabled:NO]; 16 | } 17 | 18 | + (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key 19 | { 20 | NSMutableSet *paths = [NSMutableSet setWithSet:[super keyPathsForValuesAffectingValueForKey:key]]; 21 | if ([key isEqualToString:@"resultString"] || [key isEqualToString:@"regexCode"]) { 22 | [paths addObjectsFromArray:@[ 23 | @"regexString", 24 | @"inputString", 25 | @"optionCaseInsensitive", 26 | @"optionAllowCommentsAndWhitespace", 27 | @"optionIgnoreMetacharacters", 28 | @"optionDotMatchesLineSeparators", 29 | @"optionAnchorsMatchLines", 30 | @"optionUseUnixLineSeparators", 31 | @"optionUseUnicodeWordBoundaries", 32 | ]]; 33 | } else if ([key isEqualToString:@"regexStatusImage"]) { 34 | [paths addObject:@"regexString"]; 35 | } 36 | 37 | return paths; 38 | } 39 | 40 | - (NSString *)resultString 41 | { 42 | NSRegularExpression *regex = [self regularExpression]; 43 | if (!regex) { 44 | return nil; 45 | } 46 | 47 | NSString *inputString = self.inputString ? self.inputString : @""; 48 | 49 | NSMutableArray *outputLines = [NSMutableArray array]; 50 | __block NSInteger resultCount = 1; 51 | [regex enumerateMatchesInString:inputString options:0 range:NSMakeRange(0, [inputString length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 52 | NSString *overallMatch = [inputString substringWithRange:[result range]]; 53 | [outputLines addObject:[NSString stringWithFormat:@"Match %ld: “%@”", resultCount, overallMatch]]; 54 | for (NSUInteger index = 1; index < [result numberOfRanges]; index++) { 55 | NSRange matchRange = [result rangeAtIndex:index]; 56 | NSString *subMatch = nil; 57 | if (matchRange.location == NSNotFound) { 58 | subMatch = @"(no match)"; 59 | } else { 60 | subMatch = [inputString substringWithRange:[result rangeAtIndex:index]]; 61 | } 62 | [outputLines addObject:[NSString stringWithFormat:@"Capture group %ld: “%@”", index, subMatch]]; 63 | } 64 | resultCount++; 65 | }]; 66 | if (![outputLines count]) { 67 | [outputLines addObject:@"(no match)"]; 68 | } 69 | return [outputLines componentsJoinedByString:@"\n"]; 70 | } 71 | 72 | 73 | - (NSRegularExpression *)regularExpression 74 | { 75 | if (!self.regexString) { 76 | return nil; 77 | } 78 | 79 | NSRegularExpressionOptions options = 80 | self.optionCaseInsensitive << 0 | 81 | self.optionAllowCommentsAndWhitespace << 1 | 82 | self.optionIgnoreMetacharacters << 2 | 83 | self.optionDotMatchesLineSeparators << 3 | 84 | self.optionAnchorsMatchLines << 4 | 85 | self.optionUseUnixLineSeparators << 5 | 86 | self.optionUseUnicodeWordBoundaries << 6; 87 | 88 | return [NSRegularExpression regularExpressionWithPattern:self.regexString options:options error:nil]; 89 | } 90 | 91 | - (NSString *)regexCode 92 | { 93 | if(self.regexString == nil) return nil; 94 | 95 | if([self regularExpression] == nil) return nil; 96 | 97 | NSMutableArray *options = [NSMutableArray array]; 98 | 99 | if(self.optionCaseInsensitive) [options addObject:@"NSRegularExpressionCaseInsensitive"]; 100 | if(self.optionAllowCommentsAndWhitespace) [options addObject:@"NSRegularExpressionAllowCommentsAndWhitespace"]; 101 | if(self.optionIgnoreMetacharacters) [options addObject:@"NSRegularExpressionIgnoreMetacharacters"]; 102 | if(self.optionDotMatchesLineSeparators) [options addObject:@"NSRegularExpressionDotMatchesLineSeparators"]; 103 | if(self.optionAnchorsMatchLines) [options addObject:@"NSRegularExpressionAnchorsMatchLines"]; 104 | if(self.optionUseUnixLineSeparators) [options addObject:@"NSRegularExpressionUseUnixLineSeparators"]; 105 | if(self.optionUseUnicodeWordBoundaries) [options addObject:@"NSRegularExpressionUseUnicodeWordBoundaries" ]; 106 | 107 | if([options count] == 0) [options addObject:@"0"]; 108 | NSString *optionsList = [options count] == 1 ? [options lastObject] : [NSString stringWithFormat:@"(%@)", [options componentsJoinedByString:@" | "]]; 109 | 110 | return [NSString stringWithFormat:@"NSRegularExpressionOptions options = %@;\n\ 111 | \n\ 112 | NSError *error = nil;\n\ 113 | NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@\"%@\" options:options error:&error];", optionsList, self.regexString]; 114 | } 115 | 116 | - (NSImage *)regexStatusImage 117 | { 118 | if (!self.regexString) { 119 | return [NSImage imageNamed:@"status-none"]; 120 | } 121 | return [NSImage imageNamed:[self regularExpression] ? @"status-valid" : @"status-invalid"]; 122 | } 123 | 124 | @end 125 | -------------------------------------------------------------------------------- /RegexTester.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1BB944C815BB5443004A7D5E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BB944C715BB5443004A7D5E /* Cocoa.framework */; }; 11 | 1BB944D215BB5443004A7D5E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944D015BB5443004A7D5E /* InfoPlist.strings */; }; 12 | 1BB944D415BB5443004A7D5E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB944D315BB5443004A7D5E /* main.m */; }; 13 | 1BB944D815BB5443004A7D5E /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944D615BB5443004A7D5E /* Credits.rtf */; }; 14 | 1BB944DB15BB5443004A7D5E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB944DA15BB5443004A7D5E /* AppDelegate.m */; }; 15 | 1BB944DE15BB5443004A7D5E /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944DC15BB5443004A7D5E /* MainMenu.xib */; }; 16 | 1BB944E615BCA14C004A7D5E /* status-valid.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944E415BCA14C004A7D5E /* status-valid.tiff */; }; 17 | 1BB944E715BCA14C004A7D5E /* status-invalid.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944E515BCA14C004A7D5E /* status-invalid.tiff */; }; 18 | 1BB944E915BCA211004A7D5E /* status-none.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1BB944E815BCA211004A7D5E /* status-none.tiff */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXFileReference section */ 22 | 1BB944C315BB5443004A7D5E /* RegexTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RegexTester.app; sourceTree = BUILT_PRODUCTS_DIR; }; 23 | 1BB944C715BB5443004A7D5E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 24 | 1BB944CA15BB5443004A7D5E /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 25 | 1BB944CB15BB5443004A7D5E /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 26 | 1BB944CC15BB5443004A7D5E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 27 | 1BB944CF15BB5443004A7D5E /* RegexTester-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RegexTester-Info.plist"; sourceTree = ""; }; 28 | 1BB944D115BB5443004A7D5E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 29 | 1BB944D315BB5443004A7D5E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 30 | 1BB944D515BB5443004A7D5E /* RegexTester-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RegexTester-Prefix.pch"; sourceTree = ""; }; 31 | 1BB944D715BB5443004A7D5E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; 32 | 1BB944D915BB5443004A7D5E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 33 | 1BB944DA15BB5443004A7D5E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 34 | 1BB944DD15BB5443004A7D5E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 35 | 1BB944E415BCA14C004A7D5E /* status-valid.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "status-valid.tiff"; sourceTree = ""; }; 36 | 1BB944E515BCA14C004A7D5E /* status-invalid.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "status-invalid.tiff"; sourceTree = ""; }; 37 | 1BB944E815BCA211004A7D5E /* status-none.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "status-none.tiff"; sourceTree = ""; }; 38 | /* End PBXFileReference section */ 39 | 40 | /* Begin PBXFrameworksBuildPhase section */ 41 | 1BB944C015BB5443004A7D5E /* Frameworks */ = { 42 | isa = PBXFrameworksBuildPhase; 43 | buildActionMask = 2147483647; 44 | files = ( 45 | 1BB944C815BB5443004A7D5E /* Cocoa.framework in Frameworks */, 46 | ); 47 | runOnlyForDeploymentPostprocessing = 0; 48 | }; 49 | /* End PBXFrameworksBuildPhase section */ 50 | 51 | /* Begin PBXGroup section */ 52 | 1BB944B815BB5443004A7D5E = { 53 | isa = PBXGroup; 54 | children = ( 55 | 1BB944CD15BB5443004A7D5E /* RegexTester */, 56 | 1BB944C615BB5443004A7D5E /* Frameworks */, 57 | 1BB944C415BB5443004A7D5E /* Products */, 58 | ); 59 | sourceTree = ""; 60 | }; 61 | 1BB944C415BB5443004A7D5E /* Products */ = { 62 | isa = PBXGroup; 63 | children = ( 64 | 1BB944C315BB5443004A7D5E /* RegexTester.app */, 65 | ); 66 | name = Products; 67 | sourceTree = ""; 68 | }; 69 | 1BB944C615BB5443004A7D5E /* Frameworks */ = { 70 | isa = PBXGroup; 71 | children = ( 72 | 1BB944C715BB5443004A7D5E /* Cocoa.framework */, 73 | 1BB944C915BB5443004A7D5E /* Other Frameworks */, 74 | ); 75 | name = Frameworks; 76 | sourceTree = ""; 77 | }; 78 | 1BB944C915BB5443004A7D5E /* Other Frameworks */ = { 79 | isa = PBXGroup; 80 | children = ( 81 | 1BB944CA15BB5443004A7D5E /* AppKit.framework */, 82 | 1BB944CB15BB5443004A7D5E /* CoreData.framework */, 83 | 1BB944CC15BB5443004A7D5E /* Foundation.framework */, 84 | ); 85 | name = "Other Frameworks"; 86 | sourceTree = ""; 87 | }; 88 | 1BB944CD15BB5443004A7D5E /* RegexTester */ = { 89 | isa = PBXGroup; 90 | children = ( 91 | 1BB944D915BB5443004A7D5E /* AppDelegate.h */, 92 | 1BB944DA15BB5443004A7D5E /* AppDelegate.m */, 93 | 1BB944DC15BB5443004A7D5E /* MainMenu.xib */, 94 | 1BB944CE15BB5443004A7D5E /* Supporting Files */, 95 | ); 96 | path = RegexTester; 97 | sourceTree = ""; 98 | }; 99 | 1BB944CE15BB5443004A7D5E /* Supporting Files */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 1BB944E815BCA211004A7D5E /* status-none.tiff */, 103 | 1BB944E415BCA14C004A7D5E /* status-valid.tiff */, 104 | 1BB944E515BCA14C004A7D5E /* status-invalid.tiff */, 105 | 1BB944CF15BB5443004A7D5E /* RegexTester-Info.plist */, 106 | 1BB944D015BB5443004A7D5E /* InfoPlist.strings */, 107 | 1BB944D315BB5443004A7D5E /* main.m */, 108 | 1BB944D515BB5443004A7D5E /* RegexTester-Prefix.pch */, 109 | 1BB944D615BB5443004A7D5E /* Credits.rtf */, 110 | ); 111 | name = "Supporting Files"; 112 | sourceTree = ""; 113 | }; 114 | /* End PBXGroup section */ 115 | 116 | /* Begin PBXNativeTarget section */ 117 | 1BB944C215BB5443004A7D5E /* RegexTester */ = { 118 | isa = PBXNativeTarget; 119 | buildConfigurationList = 1BB944E115BB5443004A7D5E /* Build configuration list for PBXNativeTarget "RegexTester" */; 120 | buildPhases = ( 121 | 1BB944BF15BB5443004A7D5E /* Sources */, 122 | 1BB944C015BB5443004A7D5E /* Frameworks */, 123 | 1BB944C115BB5443004A7D5E /* Resources */, 124 | ); 125 | buildRules = ( 126 | ); 127 | dependencies = ( 128 | ); 129 | name = RegexTester; 130 | productName = RegexTester; 131 | productReference = 1BB944C315BB5443004A7D5E /* RegexTester.app */; 132 | productType = "com.apple.product-type.application"; 133 | }; 134 | /* End PBXNativeTarget section */ 135 | 136 | /* Begin PBXProject section */ 137 | 1BB944BA15BB5443004A7D5E /* Project object */ = { 138 | isa = PBXProject; 139 | attributes = { 140 | LastUpgradeCheck = 0450; 141 | }; 142 | buildConfigurationList = 1BB944BD15BB5443004A7D5E /* Build configuration list for PBXProject "RegexTester" */; 143 | compatibilityVersion = "Xcode 3.2"; 144 | developmentRegion = English; 145 | hasScannedForEncodings = 0; 146 | knownRegions = ( 147 | en, 148 | ); 149 | mainGroup = 1BB944B815BB5443004A7D5E; 150 | productRefGroup = 1BB944C415BB5443004A7D5E /* Products */; 151 | projectDirPath = ""; 152 | projectRoot = ""; 153 | targets = ( 154 | 1BB944C215BB5443004A7D5E /* RegexTester */, 155 | ); 156 | }; 157 | /* End PBXProject section */ 158 | 159 | /* Begin PBXResourcesBuildPhase section */ 160 | 1BB944C115BB5443004A7D5E /* Resources */ = { 161 | isa = PBXResourcesBuildPhase; 162 | buildActionMask = 2147483647; 163 | files = ( 164 | 1BB944D215BB5443004A7D5E /* InfoPlist.strings in Resources */, 165 | 1BB944D815BB5443004A7D5E /* Credits.rtf in Resources */, 166 | 1BB944DE15BB5443004A7D5E /* MainMenu.xib in Resources */, 167 | 1BB944E615BCA14C004A7D5E /* status-valid.tiff in Resources */, 168 | 1BB944E715BCA14C004A7D5E /* status-invalid.tiff in Resources */, 169 | 1BB944E915BCA211004A7D5E /* status-none.tiff in Resources */, 170 | ); 171 | runOnlyForDeploymentPostprocessing = 0; 172 | }; 173 | /* End PBXResourcesBuildPhase section */ 174 | 175 | /* Begin PBXSourcesBuildPhase section */ 176 | 1BB944BF15BB5443004A7D5E /* Sources */ = { 177 | isa = PBXSourcesBuildPhase; 178 | buildActionMask = 2147483647; 179 | files = ( 180 | 1BB944D415BB5443004A7D5E /* main.m in Sources */, 181 | 1BB944DB15BB5443004A7D5E /* AppDelegate.m in Sources */, 182 | ); 183 | runOnlyForDeploymentPostprocessing = 0; 184 | }; 185 | /* End PBXSourcesBuildPhase section */ 186 | 187 | /* Begin PBXVariantGroup section */ 188 | 1BB944D015BB5443004A7D5E /* InfoPlist.strings */ = { 189 | isa = PBXVariantGroup; 190 | children = ( 191 | 1BB944D115BB5443004A7D5E /* en */, 192 | ); 193 | name = InfoPlist.strings; 194 | sourceTree = ""; 195 | }; 196 | 1BB944D615BB5443004A7D5E /* Credits.rtf */ = { 197 | isa = PBXVariantGroup; 198 | children = ( 199 | 1BB944D715BB5443004A7D5E /* en */, 200 | ); 201 | name = Credits.rtf; 202 | sourceTree = ""; 203 | }; 204 | 1BB944DC15BB5443004A7D5E /* MainMenu.xib */ = { 205 | isa = PBXVariantGroup; 206 | children = ( 207 | 1BB944DD15BB5443004A7D5E /* en */, 208 | ); 209 | name = MainMenu.xib; 210 | sourceTree = ""; 211 | }; 212 | /* End PBXVariantGroup section */ 213 | 214 | /* Begin XCBuildConfiguration section */ 215 | 1BB944DF15BB5443004A7D5E /* Debug */ = { 216 | isa = XCBuildConfiguration; 217 | buildSettings = { 218 | ALWAYS_SEARCH_USER_PATHS = NO; 219 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 220 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 221 | CLANG_CXX_LIBRARY = "libc++"; 222 | CLANG_ENABLE_OBJC_ARC = YES; 223 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 224 | COPY_PHASE_STRIP = NO; 225 | GCC_C_LANGUAGE_STANDARD = gnu99; 226 | GCC_DYNAMIC_NO_PIC = NO; 227 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 228 | GCC_OPTIMIZATION_LEVEL = 0; 229 | GCC_PREPROCESSOR_DEFINITIONS = ( 230 | "DEBUG=1", 231 | "$(inherited)", 232 | ); 233 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 234 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 235 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 236 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 237 | GCC_WARN_UNUSED_VARIABLE = YES; 238 | MACOSX_DEPLOYMENT_TARGET = 10.7; 239 | ONLY_ACTIVE_ARCH = YES; 240 | SDKROOT = macosx10.7; 241 | }; 242 | name = Debug; 243 | }; 244 | 1BB944E015BB5443004A7D5E /* Release */ = { 245 | isa = XCBuildConfiguration; 246 | buildSettings = { 247 | ALWAYS_SEARCH_USER_PATHS = NO; 248 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 249 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 250 | CLANG_CXX_LIBRARY = "libc++"; 251 | CLANG_ENABLE_OBJC_ARC = YES; 252 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 253 | COPY_PHASE_STRIP = YES; 254 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 255 | GCC_C_LANGUAGE_STANDARD = gnu99; 256 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 257 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 258 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 259 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 260 | GCC_WARN_UNUSED_VARIABLE = YES; 261 | MACOSX_DEPLOYMENT_TARGET = 10.7; 262 | SDKROOT = macosx10.7; 263 | }; 264 | name = Release; 265 | }; 266 | 1BB944E215BB5443004A7D5E /* Debug */ = { 267 | isa = XCBuildConfiguration; 268 | buildSettings = { 269 | CODE_SIGN_IDENTITY = ""; 270 | COMBINE_HIDPI_IMAGES = YES; 271 | CURRENT_PROJECT_VERSION = 1.0; 272 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 273 | GCC_PREFIX_HEADER = "RegexTester/RegexTester-Prefix.pch"; 274 | INFOPLIST_FILE = "RegexTester/RegexTester-Info.plist"; 275 | PRODUCT_NAME = "$(TARGET_NAME)"; 276 | VERSIONING_SYSTEM = "apple-generic"; 277 | WRAPPER_EXTENSION = app; 278 | }; 279 | name = Debug; 280 | }; 281 | 1BB944E315BB5443004A7D5E /* Release */ = { 282 | isa = XCBuildConfiguration; 283 | buildSettings = { 284 | CODE_SIGN_IDENTITY = "Developer ID Application: Marc Liyanage"; 285 | COMBINE_HIDPI_IMAGES = YES; 286 | CURRENT_PROJECT_VERSION = 1.0; 287 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 288 | GCC_PREFIX_HEADER = "RegexTester/RegexTester-Prefix.pch"; 289 | INFOPLIST_FILE = "RegexTester/RegexTester-Info.plist"; 290 | PRODUCT_NAME = "$(TARGET_NAME)"; 291 | PROVISIONING_PROFILE = ""; 292 | VERSIONING_SYSTEM = "apple-generic"; 293 | WRAPPER_EXTENSION = app; 294 | }; 295 | name = Release; 296 | }; 297 | /* End XCBuildConfiguration section */ 298 | 299 | /* Begin XCConfigurationList section */ 300 | 1BB944BD15BB5443004A7D5E /* Build configuration list for PBXProject "RegexTester" */ = { 301 | isa = XCConfigurationList; 302 | buildConfigurations = ( 303 | 1BB944DF15BB5443004A7D5E /* Debug */, 304 | 1BB944E015BB5443004A7D5E /* Release */, 305 | ); 306 | defaultConfigurationIsVisible = 0; 307 | defaultConfigurationName = Release; 308 | }; 309 | 1BB944E115BB5443004A7D5E /* Build configuration list for PBXNativeTarget "RegexTester" */ = { 310 | isa = XCConfigurationList; 311 | buildConfigurations = ( 312 | 1BB944E215BB5443004A7D5E /* Debug */, 313 | 1BB944E315BB5443004A7D5E /* Release */, 314 | ); 315 | defaultConfigurationIsVisible = 0; 316 | defaultConfigurationName = Release; 317 | }; 318 | /* End XCConfigurationList section */ 319 | }; 320 | rootObject = 1BB944BA15BB5443004A7D5E /* Project object */; 321 | } 322 | --------------------------------------------------------------------------------