diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-06-09 11:34:21 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-06-09 13:44:59 -0700 |
| commit | fcf83dbf9effab3bd98bad2b83b2468b7eb05cfd (patch) | |
| tree | 41047c94883b86ec085a81597391ce3ef557cd43 /source/slang/preprocessor.h | |
| parent | 52e8d4b9a27ab0060f874c3a63ab531847be35c0 (diff) | |
Initial import of code.
Diffstat (limited to 'source/slang/preprocessor.h')
| -rw-r--r-- | source/slang/preprocessor.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/source/slang/preprocessor.h b/source/slang/preprocessor.h new file mode 100644 index 000000000..ab72f3f87 --- /dev/null +++ b/source/slang/preprocessor.h @@ -0,0 +1,35 @@ +// Preprocessor.h +#ifndef SLANG_PREPROCESSOR_H_INCLUDED +#define SLANG_PREPROCESSOR_H_INCLUDED + +#include "../core/basic.h" +#include "../slang/lexer.h" + +namespace Slang{ namespace Compiler { + +class DiagnosticSink; +class ProgramSyntaxNode; + +// Callback interface for the preprocessor to use when looking +// for files in `#include` directives. +struct IncludeHandler +{ + virtual bool TryToFindIncludeFile( + CoreLib::String const& pathToInclude, + CoreLib::String const& pathIncludedFrom, + CoreLib::String* outFoundPath, + CoreLib::String* outFoundSource) = 0; +}; + +// Take a string of source code and preprocess it into a list of tokens. +TokenList preprocessSource( + CoreLib::String const& source, + CoreLib::String const& fileName, + DiagnosticSink* sink, + IncludeHandler* includeHandler, + CoreLib::Dictionary<CoreLib::String, CoreLib::String> defines, + ProgramSyntaxNode* syntax); + +}} + +#endif |
