1d4c6f1e6SMasatake YAMATO /* 2d4c6f1e6SMasatake YAMATO * Copyright (c) 1998-2002, Darren Hiebert 3d4c6f1e6SMasatake YAMATO * 4d4c6f1e6SMasatake YAMATO * This source code is released for free distribution under the terms of the 50ce38835Sviccuad * GNU General Public License version 2 or (at your option) any later version. 6d4c6f1e6SMasatake YAMATO * 7d4c6f1e6SMasatake YAMATO * External interface to read.c 8d4c6f1e6SMasatake YAMATO */ 95474c2e5SMasatake YAMATO #ifndef CTAGS_MAIN_READ_H 105474c2e5SMasatake YAMATO #define CTAGS_MAIN_READ_H 11d4c6f1e6SMasatake YAMATO 12d4c6f1e6SMasatake YAMATO /* 13d4c6f1e6SMasatake YAMATO * INCLUDE FILES 14d4c6f1e6SMasatake YAMATO */ 15d4c6f1e6SMasatake YAMATO #include "general.h" /* must always come first */ 16d4c6f1e6SMasatake YAMATO 17d4c6f1e6SMasatake YAMATO #include <stdio.h> 18d4c6f1e6SMasatake YAMATO #include <ctype.h> 19d4c6f1e6SMasatake YAMATO 200d502ef0SMasatake YAMATO #include "types.h" 21d4c6f1e6SMasatake YAMATO #include "vstring.h" 22509a47dbSJiří Techet #include "mio.h" 23d4c6f1e6SMasatake YAMATO 24d4c6f1e6SMasatake YAMATO /* 25d4c6f1e6SMasatake YAMATO * MACROS 26d4c6f1e6SMasatake YAMATO */ 27d4c6f1e6SMasatake YAMATO 28d4c6f1e6SMasatake YAMATO /* 29d4c6f1e6SMasatake YAMATO * DATA DECLARATIONS 30d4c6f1e6SMasatake YAMATO */ 31d4c6f1e6SMasatake YAMATO 32d4c6f1e6SMasatake YAMATO enum eCharacters { 33d4c6f1e6SMasatake YAMATO /* white space characters */ 34d4c6f1e6SMasatake YAMATO SPACE = ' ', 35d4c6f1e6SMasatake YAMATO NEWLINE = '\n', 36d4c6f1e6SMasatake YAMATO CRETURN = '\r', 37d4c6f1e6SMasatake YAMATO FORMFEED = '\f', 38d4c6f1e6SMasatake YAMATO TAB = '\t', 39d4c6f1e6SMasatake YAMATO VTAB = '\v', 40d4c6f1e6SMasatake YAMATO 41d4c6f1e6SMasatake YAMATO /* some hard to read characters */ 42d4c6f1e6SMasatake YAMATO DOUBLE_QUOTE = '"', 43d4c6f1e6SMasatake YAMATO SINGLE_QUOTE = '\'', 44d4c6f1e6SMasatake YAMATO BACKSLASH = '\\', 45d4c6f1e6SMasatake YAMATO 46d4c6f1e6SMasatake YAMATO /* symbolic representations, above 0xFF not to conflict with any byte */ 47d4c6f1e6SMasatake YAMATO STRING_SYMBOL = ('S' + 0xff), 48d4c6f1e6SMasatake YAMATO CHAR_SYMBOL = ('C' + 0xff) 49d4c6f1e6SMasatake YAMATO }; 50d4c6f1e6SMasatake YAMATO 51d4c6f1e6SMasatake YAMATO 52d4c6f1e6SMasatake YAMATO /* 53d4c6f1e6SMasatake YAMATO * FUNCTION PROTOTYPES 54d4c6f1e6SMasatake YAMATO */ 557449c250SMasatake YAMATO 567449c250SMasatake YAMATO /* InputFile: reading from fp in inputFile with updating fields in input fields */ 57c7adb37bSMasatake YAMATO extern unsigned long getInputLineNumber (void); 58a8b8569aSMasatake YAMATO extern unsigned long getInputLineNumberForFileOffset(long offset); 59f2d8a3d9SJiří Techet extern int getInputLineOffset (void); 60c7adb37bSMasatake YAMATO extern const char *getInputFileName (void); 61c7adb37bSMasatake YAMATO extern MIOPos getInputFilePosition (void); 6246ab94ccSMasatake YAMATO extern MIOPos getInputFilePositionForLine (unsigned int line); 63c7adb37bSMasatake YAMATO extern langType getInputLanguage (void); 64ce990805SThomas Braun extern bool isInputLanguage (langType lang); 65ce990805SThomas Braun extern bool isInputHeaderFile (void); 665c56d939SMasatake YAMATO extern bool isInputLanguageKindEnabled (int kindIndex); 67320b1e8bSMasatake YAMATO extern bool isInputLanguageRoleEnabled (int kindIndex, int roleIndex); 6816a2541cSMasatake YAMATO 69c0732dcaSMasatake YAMATO extern const unsigned char *getInputFileData (size_t *size); 700d195447SMasatake YAMATO 71018bce0bSMasatake YAMATO extern int getcFromInputFile (void); 727b90026cSColomban Wendling extern int getNthPrevCFromInputFile (unsigned int nth, int def); 734fffc5afSMasatake YAMATO extern int skipToCharacterInInputFile (int c); 74*64a05963SMasatake YAMATO extern int skipToCharacterInInputFile2 (int c0, int c1); 7561f14fa5SMasatake YAMATO extern void ungetcToInputFile (int c); 761b312fe7SMasatake YAMATO extern const unsigned char *readLineFromInputFile (void); 77f2b9d6ddSMasatake YAMATO 78c7adb37bSMasatake YAMATO extern unsigned long getSourceLineNumber (void); 79c7adb37bSMasatake YAMATO 804d82b4dcSJiří Techet /* Raw: reading from given a parameter, mio */ 81203c6955SJiří Techet extern char *readLineRaw (vString *const vLine, MIO *const mio); 8278e93ff0SMasatake YAMATO 83a8778562SMasatake YAMATO extern void pushLanguage(const langType language); 84a8778562SMasatake YAMATO extern langType popLanguage (void); 85a8778562SMasatake YAMATO 865474c2e5SMasatake YAMATO #endif /* CTAGS_MAIN_READ_H */ 87