plugins/geshi/geshi/objc.php
changeset 2 9e3258dfae15
parent 0 441963e5b07a
child 3 f3e2bbbd2155
--- a/plugins/geshi/geshi/objc.php	Sun Feb 10 19:00:04 2008 -0500
+++ b/plugins/geshi/geshi/objc.php	Fri May 29 19:30:59 2009 -0400
@@ -3,14 +3,24 @@
  * objc.php
  * --------
  * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net)
- * Copyright: (c) 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Contributors: Quinn Taylor (quinntaylor@mac.com)
+ * Copyright: (c) 2008 Quinn Taylor, 2004 M. Uli Kusterer, Nigel McNie (http://qbnz.com/highlighter/)
+ * Release Version: 1.0.8.2
  * Date Started: 2004/06/04
  *
- * Objective C language file for GeSHi.
+ * Objective-C language file for GeSHi.
  *
  * CHANGES
  * -------
+ * 2008/07/11 (1.0.8)
+ *   -  Added support for @ before strings being highlighted
+ * 2008/06/10 (1.0.7.22)
+ *   -  Added keywords for Objective-C 2.0 (Leopard+).
+ *   -  Changed colors to match Xcode 3 highlighting more closely.
+ *   -  Updated API for AppKit and Foundation; added CoreData classes.
+ *   -  Updated URLs for AppKit and Foundation; split classes and protocols.
+ *   -  Sorted all keyword group in reverse-alpha order for correct matching.
+ *   -  Changed all keyword groups to be case-sensitive.
  * 2004/11/27 (1.0.0)
  *   -  First Release
  *
@@ -38,202 +48,311 @@
  ************************************************************************************/
 
 $language_data = array (
-	'LANG_NAME' => 'Objective C',
-	'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
-	'COMMENT_MULTI' => array('/*' => '*/'),
-	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-	'QUOTEMARKS' => array("'", '"'),
-	'ESCAPE_CHAR' => '\\',
-	'KEYWORDS' => array(
-		1 => array(
-			'if', 'return', 'while', 'case', 'continue', 'default',
-			'do', 'else', 'for', 'switch', 'goto'
-			),
-		2 => array(
-			'NULL', 'false', 'break', 'true', 'enum', 'nil', 'Nil', 'errno', 'EDOM',
-			'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
-			'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
-			'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
-			'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
-			'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
-			'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
-			'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
-			'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
-			'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', 'NULL',
-			'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
-			'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC'
-			),
-		3 => array(
-			'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
-			'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
-			'ispunct', 'isspace', 'ispunct', 'isupper', 'isxdigit', 'tolower', 'toupper',
-			'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
-			'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
-			'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp', 'asin', 'acos', 'atan', 'atan2',
-			'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
-			'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
-			'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
-			'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
-			'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
-			'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
-			'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
-			'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
-			'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
-			'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
-			'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
-			'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
-			'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
-			),
-		4 => array(   // Data types:
-			'auto', 'char', 'const', 'double',  'float', 'int', 'long',
-			'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct',
-			'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
-			'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
-			'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm',
-			// OpenStep/GNUstep/Cocoa:
-			'SEL', 'id', 'NSRect', 'NSRange', 'NSPoint', 'NSZone', 'Class', 'IMP', 'BOOL',
-			// OpenStep/GNUstep/Cocoa @identifiers
-			'@selector', '@class', '@protocol', '@interface', '@implementation', '@end',
-			'@private', '@protected', '@public', '@try', '@throw', '@catch', '@finally',
-			'@encode', '@defs', '@synchronized'
-			),
-        5 => array( // OpenStep/GNUstep/Cocoa Foundation
-			'NSAppleEventDescriptor', 'NSNetService', 'NSAppleEventManager',
-			'NSNetServiceBrowser', 'NSAppleScript', 'NSNotification', 'NSArchiver',
-			'NSNotificationCenter', 'NSArray', 'NSNotificationQueue', 'NSAssertionHandler',
-			'NSNull', 'NSAttributedString', 'NSNumber', 'NSAutoreleasePool',
-			'NSNumberFormatter', 'NSBundle', 'NSObject', 'NSCachedURLResponse',
-			'NSOutputStream', 'NSCalendarDate', 'NSPipe', 'NSCharacterSet', 'NSPort',
-			'NSClassDescription', 'NSPortCoder', 'NSCloneCommand', 'NSPortMessage',
-			'NSCloseCommand', 'NSPortNameServer', 'NSCoder', 'NSPositionalSpecifier',
-			'NSConditionLock', 'NSProcessInfo', 'NSConnection', 'NSPropertyListSerialization',
-			'NSCountCommand', 'NSPropertySpecifier', 'NSCountedSet', 'NSProtocolChecker',
-			'NSCreateCommand', 'NSProxy', 'NSData', 'NSQuitCommand', 'NSDate',
-			'NSRandomSpecifier', 'NSDateFormatter', 'NSRangeSpecifier', 'NSDecimalNumber',
-			'NSRecursiveLock', 'NSDecimalNumberHandler', 'NSRelativeSpecifier',
-			'NSDeleteCommand', 'NSRunLoop', 'NSDeserializer', 'NSScanner', 'NSDictionary',
-			'NSScriptClassDescription', 'NSDirectoryEnumerator', 'NSScriptCoercionHandler',
-			'NSDistantObject', 'NSScriptCommand', 'NSDistantObjectRequest',
-			'NSScriptCommandDescription', 'NSDistributedLock', 'NSScriptExecutionContext',
-			'NSDistributedNotificationCenter', 'NSScriptObjectSpecifier', 'NSEnumerator',
-			'NSScriptSuiteRegistry', 'NSError', 'NSScriptWhoseTest', 'NSException',
-			'NSSerializer', 'NSExistsCommand', 'NSSet', 'NSFileHandle', 'NSSetCommand',
-			'NSFileManager', 'NSSocketPort', 'NSFormatter', 'NSSocketPortNameServer',
-			'NSGetCommand', 'NSSortDescriptor', 'NSHost', 'NSSpecifierTest', 'NSHTTPCookie',
-			'NSSpellServer', 'NSHTTPCookieStorage', 'NSStream', 'NSHTTPURLResponse',
-			'NSString', 'NSIndexSet', 'NSTask', 'NSIndexSpecifier', 'NSThread',
-			'NSInputStream', 'NSTimer', 'NSInvocation', 'NSTimeZone', 'NSKeyedArchiver',
-			'NSUnarchiver', 'NSKeyedUnarchiver', 'NSUndoManager', 'NSLock',
-			'NSUniqueIDSpecifier', 'NSLogicalTest', 'NSURL', 'NSMachBootstrapServer',
-			'NSURLAuthenticationChallenge', 'NSMachPort', 'NSURLCache', 'NSMessagePort',
-			'NSURLConnection', 'NSMessagePortNameServer', 'NSURLCredential',
-			'NSMethodSignature', 'NSURLCredentialStorage', 'NSMiddleSpecifier',
-			'NSURLDownload', 'NSMoveCommand', 'NSURLHandle', 'NSMutableArray',
-			'NSURLProtectionSpace', 'NSMutableAttributedString', 'NSURLProtocol',
-			'NSMutableCharacterSet', 'NSURLRequest', 'NSMutableData', 'NSURLResponse',
-			'NSMutableDictionary', 'NSUserDefaults', 'NSMutableIndexSet', 'NSValue',
-			'NSMutableSet', 'NSValueTransformer', 'NSMutableString', 'NSWhoseSpecifier',
-			'NSMutableURLRequest', 'NSXMLParser', 'NSNameSpecifier'
-		),
-		6 => array( // OpenStep/GNUstep/Cocoa AppKit
-			'NSActionCell', 'NSOpenGLPixelFormat', 'NSAffineTransform', 'NSOpenGLView',
-			'NSAlert', 'NSOpenPanel', 'NSAppleScript Additions', 'NSOutlineView',
-			'NSApplication', 'NSPageLayout', 'NSArrayController', 'NSPanel',
-			'NSATSTypesetter', 'NSParagraphStyle', 'NSPasteboard', 'NSBezierPath',
-			'NSPDFImageRep', 'NSBitmapImageRep', 'NSPICTImageRep', 'NSBox', 'NSPopUpButton',
-			'NSBrowser', 'NSPopUpButtonCell', 'NSBrowserCell', 'NSPrinter', 'NSPrintInfo',
-			'NSButton', 'NSPrintOperation', 'NSButtonCell', 'NSPrintPanel', 'NSCachedImageRep',
-			'NSProgressIndicator', 'NSCell', 'NSQuickDrawView', 'NSClipView', 'NSResponder',
-			'NSRulerMarker', 'NSColor', 'NSRulerView', 'NSColorList', 'NSSavePanel',
-			'NSColorPanel', 'NSScreen', 'NSColorPicker', 'NSScroller', 'NSColorWell',
-			'NSScrollView', 'NSComboBox', 'NSSearchField', 'NSComboBoxCell',
-			'NSSearchFieldCell', 'NSControl', 'NSSecureTextField', 'NSController',
-			'NSSecureTextFieldCell', 'NSCursor', 'NSSegmentedCell', 'NSCustomImageRep',
-			'NSSegmentedControl', 'NSDocument', 'NSShadow', 'NSDocumentController',
-			'NSSimpleHorizontalTypesetter', 'NSDrawer', 'NSSlider', 'NSEPSImageRep',
-			'NSSliderCell', 'NSEvent', 'NSSound', 'NSFileWrapper', 'NSSpeechRecognizer',
-			'NSFont', 'NSSpeechSynthesizer', 'NSFontDescriptor', 'NSSpellChecker',
-			'NSFontManager', 'NSSplitView', 'NSFontPanel', 'NSStatusBar', 'NSForm',
-			'NSStatusItem', 'NSFormCell', 'NSStepper', 'NSGlyphGenerator', 'NSStepperCell',
-			'NSGlyphInfo', 'NSGraphicsContext', 'NSTableColumn', 'NSHelpManager',
-			'NSTableHeaderCell', 'NSImage', 'NSTableHeaderView', 'NSImageCell', 'NSTableView',
-			'NSImageRep', 'NSTabView', 'NSImageView', 'NSTabViewItem', 'NSInputManager',
-			'NSText', 'NSInputServer', 'NSTextAttachment', 'NSLayoutManager',
-			'NSTextAttachmentCell', 'NSMatrix', 'NSTextContainer', 'NSMenu', 'NSTextField',
-			'NSMenuItem', 'NSTextFieldCell', 'NSMenuItemCell', 'NSTextStorage', 'NSMenuView',
-			'NSTextTab', 'NSMovie', 'NSTextView', 'NSMovieView', 'NSToolbar', 'NSToolbarItem',
-			'NSMutableParagraphStyle', 'NSTypesetter', 'NSNib', 'NSNibConnector',
-			'NSUserDefaultsController', 'NSNibControlConnector', 'NSView',
-			'NSNibOutletConnector', 'NSWindow', 'NSObjectController', 'NSWindowController',
-			'NSOpenGLContext', 'NSWorkspace', 'NSOpenGLPixelBuffer'
-		)
-	),
-	'SYMBOLS' => array(
-		'(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
-		),
-	'CASE_SENSITIVE' => array(
-		GESHI_COMMENTS => true,
-		1 => false,
-		2 => false,
-		3 => false,
-		4 => false,
-		5 => false,
-		6 => false,
-		),
-	'STYLES' => array(
-		'KEYWORDS' => array(
-			1 => 'color: #0000ff;',
-			2 => 'color: #0000ff;',
-			3 => 'color: #0000dd;',
-			4 => 'color: #0000ff;',
-			5 => 'color: #0000ff;',
-			6 => 'color: #0000ff;'
-			),
-		'COMMENTS' => array(
-			1 => 'color: #ff0000;',
-			2 => 'color: #339900;',
-			'MULTI' => 'color: #ff0000; font-style: italic;'
-			),
-		'ESCAPE_CHAR' => array(
-			0 => 'color: #666666; font-weight: bold;'
-			),
-		'BRACKETS' => array(
-			0 => 'color: #002200;'
-			),
-		'STRINGS' => array(
-			0 => 'color: #666666;'
-			),
-		'NUMBERS' => array(
-			0 => 'color: #0000dd;'
-			),
-		'METHODS' => array(
-			),
-		'SYMBOLS' => array(
-			0 => 'color: #002200;'
-			),
-		'REGEXPS' => array(
-			),
-		'SCRIPT' => array(
-			)
-		),
-	'URLS' => array(
-		1 => '',
-		2 => '',
-		3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
-		4 => '',
-		5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/{FNAME}.html',
-		6 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/Classes/{FNAME}.html'
-		),
-	'OOLANG' => false,
-	'OBJECT_SPLITTERS' => array(
-		),
-	'REGEXPS' => array(
-		),
-	'STRICT_MODE_APPLIES' => GESHI_NEVER,
-	'SCRIPT_DELIMITERS' => array(
-		),
-	'HIGHLIGHT_STRICT_BLOCK' => array(
-		)
+    'LANG_NAME' => 'Objective-C',
+    'COMMENT_SINGLE' => array(
+        //Compiler directives
+        1 => '#',
+        //Single line C-Comments
+        2 => '//'
+        ),
+    'COMMENT_MULTI' => array('/*' => '*/'),
+    'COMMENT_REGEXP' => array(
+        //Multiline Continuation for single-line comment
+        2 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        //Pseudo-Highlighting of the @-sign before strings
+        3 => "/@(?=\")/"
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '\\',
+
+    'KEYWORDS' => array(
+        // Objective-C keywords
+        1 => array(
+            'while', 'switch', 'return', 'in', 'if', 'goto', 'foreach', 'for',
+            'else', 'do', 'default', 'continue', 'case', '@try', '@throw',
+            '@synthesize', '@synchronized', '@selector', '@public', '@protocol',
+            '@protected', '@property', '@private', '@interface',
+            '@implementation', '@finally', '@end', '@encode', '@defs', '@class',
+            '@catch'
+            ),
+        // Macros and constants
+        2 => array(
+            'YES', 'USHRT_MAX', 'ULONG_MAX', 'UINT_MAX', 'UCHAR_MAX', 'true',
+            'TMP_MAX', 'stdout', 'stdin', 'stderr', 'SIGTERM', 'SIGSEGV',
+            'SIGINT', 'SIGILL', 'SIG_IGN', 'SIGFPE', 'SIG_ERR', 'SIG_DFL',
+            'SIGABRT', 'SHRT_MIN', 'SHRT_MAX', 'SEEK_SET', 'SEEK_END',
+            'SEEK_CUR', 'SCHAR_MIN', 'SCHAR_MAX', 'RAND_MAX', 'NULL',
+            'NO', 'nil', 'Nil', 'L_tmpnam', 'LONG_MIN', 'LONG_MAX',
+            'LDBL_MIN_EXP', 'LDBL_MIN', 'LDBL_MAX_EXP', 'LDBL_MAX',
+            'LDBL_MANT_DIG', 'LDBL_EPSILON', 'LDBL_DIG', 'INT_MIN', 'INT_MAX',
+            'HUGE_VAL', 'FOPEN_MAX', 'FLT_ROUNDS', 'FLT_RADIX', 'FLT_MIN_EXP',
+            'FLT_MIN', 'FLT_MAX_EXP', 'FLT_MAX', 'FLT_MANT_DIG', 'FLT_EPSILON',
+            'FLT_DIG', 'FILENAME_MAX', 'false', 'EXIT_SUCCESS', 'EXIT_FAILURE',
+            'errno', 'ERANGE', 'EOF', 'enum', 'EDOM', 'DBL_MIN_EXP', 'DBL_MIN',
+            'DBL_MAX_EXP', 'DBL_MAX', 'DBL_MANT_DIG', 'DBL_EPSILON', 'DBL_DIG',
+            'CLOCKS_PER_SEC', 'CHAR_MIN', 'CHAR_MAX', 'CHAR_BIT', 'BUFSIZ',
+            'break'
+            ),
+        // C standard library functions
+        3 => array(
+            'vsprintf', 'vprintf', 'vfprintf', 'va_start', 'va_end', 'va_arg',
+            'ungetc', 'toupper', 'tolower', 'tmpname', 'tmpfile', 'time',
+            'tanh', 'tan', 'system', 'strxfrm', 'strtoul', 'strtol', 'strtok',
+            'strtod', 'strstr', 'strspn', 'strrchr', 'strpbrk', 'strncpy',
+            'strncmp', 'strncat', 'strlen', 'strftime', 'strerror', 'strcspn',
+            'strcpy', 'strcoll', 'strcmp', 'strchr', 'strcat', 'sscanf',
+            'srand', 'sqrt', 'sprintf', 'snprintf', 'sizeof', 'sinh', 'sin',
+            'setvbuf', 'setjmp', 'setbuf', 'scanf', 'rewind', 'rename',
+            'remove', 'realloc', 'rand', 'qsort', 'puts', 'putchar', 'putc',
+            'printf', 'pow', 'perror', 'offsetof', 'modf', 'mktime', 'memset',
+            'memmove', 'memcpy', 'memcmp', 'memchr', 'malloc', 'longjmp',
+            'log10', 'log', 'localtime', 'ldiv', 'ldexp', 'labs', 'isxdigit',
+            'isupper', 'isspace', 'ispunct', 'isprint', 'islower',
+            'isgraph', 'isdigit', 'iscntrl', 'isalpha', 'isalnum', 'gmtime',
+            'gets', 'getenv', 'getchar', 'getc', 'fwrite', 'ftell', 'fsetpos',
+            'fseek', 'fscanf', 'frexp', 'freopen', 'free', 'fread', 'fputs',
+            'fputc', 'fprintf', 'fopen', 'fmod', 'floor', 'fgets', 'fgetpos',
+            'fgetc', 'fflush', 'ferror', 'feof', 'fclose', 'fabs', 'exp',
+            'exit', 'div', 'difftime', 'ctime', 'cosh', 'cos', 'clock',
+            'clearerr', 'ceil', 'calloc', 'bsearch', 'atol', 'atoi', 'atof',
+            'atexit', 'atan2', 'atan', 'assert', 'asin', 'asctime', 'acos',
+            'abs', 'abort'
+            ),
+        // Data types (C, Objective-C, Cocoa)
+        4 => array(
+            'volatile', 'void', 'va_list', 'unsigned', 'union', 'typedef', 'tm',
+            'time_t', 'struct', 'string', 'static', 'size_t',
+            'signed', 'signal', 'short', 'SEL', 'register', 'raise',
+            'ptrdiff_t', 'NSZone', 'NSRect', 'NSRange', 'NSPoint', 'long',
+            'ldiv_t', 'jmp_buf', 'int', 'IMP', 'id', 'fpos_t', 'float', 'FILE',
+            'extern', 'double', 'div_t', 'const', 'clock_t', 'Class', 'char',
+            'BOOL', 'auto'
+            ),
+        // Foundation classes
+        5 => array(
+            'NSXMLParser', 'NSXMLNode', 'NSXMLElement', 'NSXMLDTDNode',
+            'NSXMLDTD', 'NSXMLDocument', 'NSWhoseSpecifier',
+            'NSValueTransformer', 'NSValue', 'NSUserDefaults', 'NSURLResponse',
+            'NSURLRequest', 'NSURLProtocol', 'NSURLProtectionSpace',
+            'NSURLHandle', 'NSURLDownload', 'NSURLCredentialStorage',
+            'NSURLCredential', 'NSURLConnection', 'NSURLCache',
+            'NSURLAuthenticationChallenge', 'NSURL', 'NSUniqueIDSpecifier',
+            'NSUndoManager', 'NSUnarchiver', 'NSTimeZone', 'NSTimer',
+            'NSThread', 'NSTask', 'NSString', 'NSStream', 'NSSpellServer',
+            'NSSpecifierTest', 'NSSortDescriptor', 'NSSocketPortNameServer',
+            'NSSocketPort', 'NSSetCommand', 'NSSet', 'NSSerializer',
+            'NSScriptWhoseTest', 'NSScriptSuiteRegistry',
+            'NSScriptObjectSpecifier', 'NSScriptExecutionContext',
+            'NSScriptCommandDescription', 'NSScriptCommand',
+            'NSScriptCoercionHandler', 'NSScriptClassDescription', 'NSScanner',
+            'NSRunLoop', 'NSRelativeSpecifier', 'NSRecursiveLock',
+            'NSRangeSpecifier', 'NSRandomSpecifier', 'NSQuitCommand', 'NSProxy',
+            'NSProtocolChecker', 'NSPropertySpecifier',
+            'NSPropertyListSerialization', 'NSProcessInfo', 'NSPredicate',
+            'NSPositionalSpecifier', 'NSPortNameServer', 'NSPortMessage',
+            'NSPortCoder', 'NSPort', 'NSPointerFunctions', 'NSPointerArray',
+            'NSPipe', 'NSOutputStream', 'NSOperationQueue', 'NSOperation',
+            'NSObject', 'NSNumberFormatter', 'NSNumber', 'NSNull',
+            'NSNotificationQueue', 'NSNotificationCenter', 'NSNotification',
+            'NSNetServiceBrowser', 'NSNetService', 'NSNameSpecifier',
+            'NSMutableURLRequest', 'NSMutableString', 'NSMutableSet',
+            'NSMutableIndexSet', 'NSMutableDictionary', 'NSMutableData',
+            'NSMutableCharacterSet', 'NSMutableAttributedString',
+            'NSMutableArray', 'NSMoveCommand', 'NSMiddleSpecifier',
+            'NSMethodSignature', 'NSMetadataQueryResultGroup',
+            'NSMetadataQueryAttributeValueTuple', 'NSMetadataQuery',
+            'NSMetadataItem', 'NSMessagePortNameServer', 'NSMessagePort',
+            'NSMapTable', 'NSMachPort', 'NSMachBootstrapServer',
+            'NSLogicalTest', 'NSLock', 'NSLocale', 'NSKeyedUnarchiver',
+            'NSKeyedArchiver', 'NSInvocationOperation', 'NSInvocation',
+            'NSInputStream', 'NSIndexSpecifier', 'NSIndexSet', 'NSIndexPath',
+            'NSHTTPURLResponse', 'NSHTTPCookieStorage', 'NSHTTPCookie',
+            'NSHost', 'NSHashTable', 'NSGetCommand', 'NSGarbageCollector',
+            'NSFormatter', 'NSFileManager', 'NSFileHandle', 'NSExpression',
+            'NSExistsCommand', 'NSException', 'NSError', 'NSEnumerator',
+            'NSDistributedNotificationCenter', 'NSDistributedLock',
+            'NSDistantObjectRequest', 'NSDistantObject',
+            'NSDirectoryEnumerator', 'NSDictionary', 'NSDeserializer',
+            'NSDeleteCommand', 'NSDecimalNumberHandler', 'NSDecimalNumber',
+            'NSDateFormatter', 'NSDateComponents', 'NSDate', 'NSData',
+            'NSCreateCommand', 'NSCountedSet', 'NSCountCommand', 'NSConnection',
+            'NSConditionLock', 'NSCondition', 'NSCompoundPredicate',
+            'NSComparisonPredicate', 'NSCoder', 'NSCloseCommand',
+            'NSCloneCommand', 'NSClassDescription', 'NSCharacterSet',
+            'NSCalendarDate', 'NSCalendar', 'NSCachedURLResponse', 'NSBundle',
+            'NSAutoreleasePool', 'NSAttributedString', 'NSAssertionHandler',
+            'NSArray', 'NSArchiver', 'NSAppleScript', 'NSAppleEventManager',
+            'NSAppleEventDescriptor', 'NSAffineTransform'
+            ),
+        // Foundation protocols
+        6 => array(
+            'NSURLProtocolClient', 'NSURLHandleClient', 'NSURLClient',
+            'NSURLAuthenticationChallengeSender', 'NSScriptObjectSpecifiers',
+            'NSScriptKeyValueCoding', 'NSScriptingComparisonMethods',
+            'NSObjCTypeSerializationCallBack', 'NSMutableCopying',
+            'NSLocking', 'NSKeyValueObserving', 'NSKeyValueCoding',
+            'NSFastEnumeration', 'NSErrorRecoveryAttempting',
+            'NSDecimalNumberBehaviors', 'NSCopying', 'NSComparisonMethods',
+            'NSCoding'
+            ),
+        // AppKit classes
+        7 => array(
+            'NSWorkspace', 'NSWindowController', 'NSWindow', 'NSViewController',
+            'NSViewAnimation', 'NSView', 'NSUserDefaultsController',
+            'NSTypesetter', 'NSTreeNode', 'NSTreeController', 'NSTrackingArea',
+            'NSToolbarItemGroup', 'NSToolbarItem', 'NSToolbar',
+            'NSTokenFieldCell', 'NSTokenField', 'NSTextView',
+            'NSTextTableBlock', 'NSTextTable', 'NSTextTab', 'NSTextStorage',
+            'NSTextList', 'NSTextFieldCell', 'NSTextField', 'NSTextContainer',
+            'NSTextBlock', 'NSTextAttachmentCell', 'NSTextAttachment', 'NSText',
+            'NSTabViewItem', 'NSTabView', 'NSTableView', 'NSTableHeaderView',
+            'NSTableHeaderCell', 'NSTableColumn', 'NSStepperCell', 'NSStepper',
+            'NSStatusItem', 'NSStatusBar', 'NSSplitView', 'NSSpellChecker',
+            'NSSpeechSynthesizer', 'NSSpeechRecognizer', 'NSSound',
+            'NSSliderCell', 'NSSlider', 'NSSimpleHorizontalTypesetter',
+            'NSShadow', 'NSSegmentedControl', 'NSSegmentedCell',
+            'NSSecureTextFieldCell', 'NSSecureTextField', 'NSSearchFieldCell',
+            'NSSearchField', 'NSScrollView', 'NSScroller', 'NSScreen',
+            'NSSavePanel', 'NSRulerView', 'NSRulerMarker', 'NSRuleEditor',
+            'NSResponder', 'NSQuickDrawView', 'NSProgressIndicator',
+            'NSPrintPanel', 'NSPrintOperation', 'NSPrintInfo', 'NSPrinter',
+            'NSPredicateEditorRowTemplate', 'NSPredicateEditor',
+            'NSPopUpButtonCell', 'NSPopUpButton', 'NSPICTImageRep',
+            'NSPersistentDocument', 'NSPDFImageRep', 'NSPathControl',
+            'NSPathComponentCell', 'NSPathCell', 'NSPasteboard',
+            'NSParagraphStyle', 'NSPanel', 'NSPageLayout', 'NSOutlineView',
+            'NSOpenPanel', 'NSOpenGLView', 'NSOpenGLPixelFormat',
+            'NSOpenGLPixelBuffer', 'NSOpenGLContext', 'NSObjectController',
+            'NSNibOutletConnector', 'NSNibControlConnector', 'NSNibConnector',
+            'NSNib', 'NSMutableParagraphStyle', 'NSMovieView', 'NSMovie',
+            'NSMenuView', 'NSMenuItemCell', 'NSMenuItem', 'NSMenu', 'NSMatrix',
+            'NSLevelIndicatorCell', 'NSLevelIndicator', 'NSLayoutManager',
+            'NSInputServer', 'NSInputManager', 'NSImageView', 'NSImageRep',
+            'NSImageCell', 'NSImage', 'NSHelpManager', 'NSGraphicsContext',
+            'NSGradient', 'NSGlyphInfo', 'NSGlyphGenerator', 'NSFormCell',
+            'NSForm', 'NSFontPanel', 'NSFontManager', 'NSFontDescriptor',
+            'NSFont', 'NSFileWrapper', 'NSEvent', 'NSEPSImageRep', 'NSDrawer',
+            'NSDocumentController', 'NSDocument', 'NSDockTile',
+            'NSDictionaryController', 'NSDatePickerCell', 'NSDatePicker',
+            'NSCustomImageRep', 'NSCursor', 'NSController', 'NSControl',
+            'NSComboBoxCell', 'NSComboBox', 'NSColorWell', 'NSColorSpace',
+            'NSColorPicker', 'NSColorPanel', 'NSColorList', 'NSColor',
+            'NSCollectionViewItem', 'NSCollectionView', 'NSClipView',
+            'NSCIImageRep', 'NSCell', 'NSCachedImageRep', 'NSButtonCell',
+            'NSButton', 'NSBrowserCell', 'NSBrowser', 'NSBox',
+            'NSBitmapImageRep', 'NSBezierPath', 'NSATSTypesetter',
+            'NSArrayController', 'NSApplication', 'NSAnimationContext',
+            'NSAnimation', 'NSAlert', 'NSActionCell'
+            ),
+        // AppKit protocols
+        8 => array(
+            'NSWindowScripting', 'NSValidatedUserInterfaceItem',
+            'NSUserInterfaceValidations', 'NSToolTipOwner',
+            'NSToolbarItemValidation', 'NSTextInput',
+            'NSTableDataSource', 'NSServicesRequests',
+            'NSPrintPanelAccessorizing', 'NSPlaceholders',
+            'NSPathControlDelegate', 'NSPathCellDelegate',
+            'NSOutlineViewDataSource', 'NSNibAwaking', 'NSMenuValidation',
+            'NSKeyValueBindingCreation', 'NSInputServiceProvider',
+            'NSInputServerMouseTracker', 'NSIgnoreMisspelledWords',
+            'NSGlyphStorage', 'NSFontPanelValidation', 'NSEditorRegistration',
+            'NSEditor', 'NSDraggingSource', 'NSDraggingInfo',
+            'NSDraggingDestination', 'NSDictionaryControllerKeyValuePair',
+            'NSComboBoxDataSource', 'NSComboBoxCellDataSource',
+            'NSColorPickingDefault', 'NSColorPickingCustom', 'NSChangeSpelling',
+            'NSAnimatablePropertyContainer', 'NSAccessibility'
+            ),
+        // CoreData classes
+        9 => array(
+            'NSRelationshipDescription', 'NSPropertyMapping',
+            'NSPropertyDescription', 'NSPersistentStoreCoordinator',
+            'NSPersistentStore', 'NSMigrationManager', 'NSMappingModel',
+            'NSManagedObjectModel', 'NSManagedObjectID',
+            'NSManagedObjectContext', 'NSManagedObject',
+            'NSFetchRequestExpression', 'NSFetchRequest',
+            'NSFetchedPropertyDescription', 'NSEntityMigrationPolicy',
+            'NSEntityMapping', 'NSEntityDescription', 'NSAttributeDescription',
+            'NSAtomicStoreCacheNode', 'NSAtomicStore'
+            )
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => true,
+        1 => true,
+        2 => true,
+        3 => true,
+        4 => true,
+        5 => true,
+        6 => true,
+        7 => true,
+        8 => true,
+        9 => true
+        ),
+    // Define the colors for the groups listed above
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #a61390;', // Objective-C keywords
+            2 => 'color: #a61390;', // Macros and constants
+            3 => 'color: #a61390;', // C standard library functions
+            4 => 'color: #a61390;', // data types
+            5 => 'color: #400080;', // Foundation classes
+            6 => 'color: #2a6f76;', // Foundation protocols
+            7 => 'color: #400080;', // AppKit classes
+            8 => 'color: #2a6f76;', // AppKit protocols
+            9 => 'color: #400080;' // CoreData classes
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #6e371a;', // Preprocessor directives
+            2 => 'color: #11740a; font-style: italic;', // Normal C single-line comments
+            3 => 'color: #bf1d1a;', // Q-sign in front of Strings
+            'MULTI' => 'color: #11740a; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #2400d9;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: #002200;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #bf1d1a;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #2400d9;'
+            ),
+        'METHODS' => array(
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #002200;'
+            ),
+        'REGEXPS' => array(
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
+        4 => '',
+        5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/{FNAME}_Class/',
+        6 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/{FNAME}_Protocol/',
+        7 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/{FNAME}_Class/',
+        8 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/{FNAME}_Protocol/',
+        9 => 'http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/{FNAME}_Class/'
+        ),
+    'OOLANG' => false,
+    'OBJECT_SPLITTERS' => array(
+        ),
+    'REGEXPS' => array(
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        )
 );
 
 ?>