X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Finput.h;h=dfa0ad03b92eaabd56bfa7b863fde985cc1682cc;hb=112ae0e3db511ddd92e769c11328646ebe2a6240;hp=e938d6613fac15149dac728b4ce75c769241340f;hpb=aa8737733fe51d2941f434c10ca028ac5ab2986c;p=cc65 diff --git a/src/cc65/input.h b/src/cc65/input.h index e938d6613..dfa0ad03b 100644 --- a/src/cc65/input.h +++ b/src/cc65/input.h @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2000 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 2000-2010, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -38,8 +38,42 @@ +#include + +/* common */ +#include "strbuf.h" + + + +/*****************************************************************************/ +/* data */ +/*****************************************************************************/ + + + +/* An enum that describes different types of input files. The members are + * choosen so that it is possible to combine them to bitsets + */ +typedef enum { + IT_MAIN = 0x01, /* Main input file */ + IT_SYSINC = 0x02, /* System include file (using <>) */ + IT_USRINC = 0x04, /* User include file (using "") */ +} InputType; + +/* Forward for an IFile structure */ +struct IFile; + +/* The current input line */ +extern StrBuf* Line; + +/* Current and next input character */ +extern char CurC; +extern char NextC; + + + /*****************************************************************************/ -/* Code */ +/* Code */ /*****************************************************************************/ @@ -47,18 +81,38 @@ void OpenMainFile (const char* Name); /* Open the main file. Will call Fatal() in case of failures. */ -void OpenIncludeFile (const char* Name, unsigned DirSpec); +void OpenIncludeFile (const char* Name, InputType IT); /* Open an include file and insert it into the tables. */ +void NextChar (void); +/* Read the next character from the input stream and make CurC and NextC + * valid. If end of line is reached, both are set to NUL, no more lines + * are read by this function. + */ + +void ClearLine (void); +/* Clear the current input line */ + +StrBuf* InitLine (StrBuf* Buf); +/* Initialize Line from Buf and read CurC and NextC from the new input line. + * The function returns the old input line. + */ + int NextLine (void); /* Get a line from the current input. Returns 0 on end of file. */ +const char* GetInputFile (const struct IFile* IF); +/* Return a filename from an IFile struct */ + const char* GetCurrentFile (void); /* Return the name of the current input file */ unsigned GetCurrentLine (void); /* Return the line number in the current input file */ +void CreateDependencies (void); +/* Create dependency files requested by the user */ + /* End of input.h */