#ifndef _INCLUDED_AGSPARSER_H #define _INCLUDED_AGSPARSER_H /** AGSParser ...a class to get documention info from ObjC source Copyright (C) 2001 Free Software Foundation, Inc. Written by: Richard Frith-Macdonald Created: October 2001 This file is part of the GNUstep Project This program 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. You should have received a copy of the GNU General Public License along with this program; see the file COPYING.LIB. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This is the AGSParser class ... and some autogsdoc examples. The AGSParser class is designed to produce a property-list which can be handled by AGSOutput ... one class is not much use without the other. */ #include @interface AGSParser : NSObject { /* * The following items are used for logging/debug purposes. */ NSString *fileName; /** Not retained - file being parsed. */ NSString *unitName; /** Not retained - unit being parsed. */ NSString *itemName; /** Not retained - item being parsed. */ NSArray *lines; /** Not retained - line number mapping. */ /* * The next few ivars represent the data currently being parsed. */ unichar *buffer; unsigned length; unsigned pos; BOOL inHeader; BOOL commentsRead; BOOL haveOutput; BOOL haveSource; BOOL inInstanceVariables; BOOL inArgList; BOOL documentInstanceVariables; BOOL documentAllInstanceVariables; BOOL verbose; BOOL warn; BOOL standards; NSDictionary *wordMap; NSString *declared; /** Where classes were declared. */ NSMutableArray *ifStack; /** Track preprocessor conditionals. */ NSString *comment; /** Documentation accumulator. */ NSMutableDictionary *info; /** All information parsed. */ NSMutableArray *source; /** Names of source files. */ NSCharacterSet *identifier; /** Legit char in identifier */ NSCharacterSet *identStart; /** Legit initial char of identifier */ NSCharacterSet *spaces; /** All blank characters */ NSCharacterSet *spacenl; /** Blanks excluding newline */ } - (NSMutableDictionary*) info; - (id) init; /** Simple initialiser */ - (NSMutableArray*) outputs; - (unsigned) parseComment; - (NSMutableDictionary*) parseDeclaration; - (NSMutableDictionary*) parseFile: (NSString*)name isSource: (BOOL)isSource; - (NSString*) parseIdentifier; - (NSMutableDictionary*) parseImplementation; - (NSMutableDictionary*) parseInterface; - (NSMutableDictionary*) parseInstanceVariables; - (NSMutableDictionary*) parseMacro; - (NSMutableDictionary*) parseMethodIsDeclaration: (BOOL)flag; - (NSMutableDictionary*) parseMethodsAreDeclarations: (BOOL)flag; - (NSString*) parseMethodType; - (unsigned) parsePreprocessor; - (NSMutableDictionary*) parseProtocol; - (NSMutableArray*) parseProtocolList; - (unsigned) parseSpace: (NSCharacterSet*)spaceSet; - (unsigned) parseSpace; - (void) reset; - (void) setDeclared: (NSString*)name; - (void) setDocumentInstanceVariables: (BOOL)flag; - (void) setDocumentAllInstanceVariables: (BOOL)flag; - (void) setGenerateStandards: (BOOL)flag; - (void) setStandards: (NSMutableDictionary*)dict; - (void) setWordMap: (NSDictionary*)map; - (void) setupBuffer; - (unsigned) skipArray; - (unsigned) skipBlock; - (unsigned) skipLiteral; - (unsigned) skipRemainderOfLine; - (unsigned) skipSpaces; - (unsigned) skipStatement; - (unsigned) skipStatementLine; - (unsigned) skipToEndOfLine; - (unsigned) skipUnit; - (NSMutableArray*) sources; @end #endif