Хотя этот ответ не отвечает на вопрос ОП как таковой , я полагаю, что другие, ищущие информацию, связанную с Objective-C listings
, наткнуться на этот вопрос.
Ниже приведено listings
\lstdefinelanguage
для Objective-C 2.0, GNU99 и ANSI C99. В то время как listings
включает определения как для C, так и для Objective-C, определения относятся к более старому стандарту C89 и Objective-C 1.0. Версия ниже добавляет C99, добавляет GNU99 к C99, а затем добавляет Objective-C (2.0) к GNU99.
Вероятно, вы увидите разницу, только если будете использовать стиль шрифта для ключевых слов, который отличается от "обычного" стиля шрифта.
Я являюсь автором приведенного ниже кода (за исключением определения ANSI C99, которое было взято из listings
ANSI C и изменено для ANSI C99). Вы можете использовать его по своему усмотрению, включая включение его в другие произведения, без указания авторства или компенсации. Настоящим размещаю его в открытом доступе. ( Примечание: это в основном для тех, кто работает на работодателей, которые действительно разборчивы в таких вещах, мне действительно все равно. )
\lstdefinelanguage[Objective]{C}[GNU99]{C}
{morekeywords={@catch,@class,@encode,@end,@finally,@implementation,%
@interface,@private,@protected,@protocol,@public,@selector,%
@synchronized,@throw,@try,BOOL,Class,IMP,NO,Nil,SEL,YES,_cmd,%
bycopy,byref,id,in,inout,nil,oneway,out,self,super,%
% The next two lines are Objective-C 2 keywords.
@dynamic,@package,@property,@synthesize,readwrite,readonly,%
assign,retain,copy,nonatomic%
},%
moredirectives={import}%
}%
\lstdefinelanguage[GNU99]{C}[99]{C}
{morekeywords={asm,__asm__,__extension__,typeof,__typeof__}%
}%
\lstdefinelanguage[99]{C}%
{morekeywords={_Bool,_Complex,_Imaginary,auto,break,case,char,%
const,continue,default,do,double,else,enum,extern,float,for,%
goto,if,inline,int,long,register,restrict,return,short,signed,%
sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,%
while},%
sensitive,%
morecomment=[s]{/*}{*/},%
morecomment=[l]//,%
morestring=[b]",%
morestring=[b]',%
moredelim=*[directive]\#,%
moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
include,pragma,undef,warning}%
}[keywords,comments,strings,directives]%