| <?php |
| /************************************************************************************* |
| * objc.php |
| * -------- |
| * Author: M. Uli Kusterer (witness.of.teachtext@gmx.net) |
| * 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.3 |
| * Date Started: 2004/06/04 |
| * |
| * 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 |
| * |
| * TODO (updated 2004/11/27) |
| * ------------------------- |
| * |
| ************************************************************************************* |
| * |
| * This file is part of GeSHi. |
| * |
| * GeSHi is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * GeSHi is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with GeSHi; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| * |
| ************************************************************************************/ |
| |
| $language_data = 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( |
| ) |
| ); |
| |
| ?> |