summaryrefslogtreecommitdiff
path: root/source/slang/slang-check.h
blob: 0309e53930b10037e2c0726266ac01a42a74a07e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// slang-check.h
#pragma once

// This file provides the public interface to the semantic
// checking infrastructure in `slang-check-*`.

#include "slang-syntax.h"

namespace Slang
{
    class DiagnosticSink;
    class EntryPoint;
    class Linkage;
    class Module;
    class ShaderCompiler;
    class ShaderLinkInfo;
    class ShaderSymbol;

    class TranslationUnitRequest;

    void checkTranslationUnit(
        TranslationUnitRequest* translationUnit);

    // Look for a module that matches the given name:
    // either one we've loaded already, or one we
    // can find vai the search paths available to us.
    //
    // Needed by import declaration checking.
    //
    // TODO: need a better location to declare this.
    RefPtr<Module> findOrImportModule(
        Linkage*            linkage,
        Name*               name,
        SourceLoc const&    loc,
        DiagnosticSink*     sink);

    bool isGlobalShaderParameter(VarDeclBase* decl);
    bool isFromStdLib(Decl* decl);

    void registerBuiltinDecls(Session* session, Decl* decl);
}