src/compiler/NameBinding.h
author David Anderson <dvander@alliedmods.net>
Sat Nov 17 19:07:49 2012 -0800 (2012-11-17)
changeset 196 9904633b1dfc
parent 195 c1ba166f3fc4
child 250 0998a43cc155
permissions -rw-r--r--
Fix Linux build problems.
dvander@137
     1
/* vim: set ts=4 sw=4 tw=99 et:
dvander@137
     2
 *
dvander@0
     3
 * Copyright (C) 2012 David Anderson
dvander@0
     4
 *
dvander@137
     5
 * This file is part of SourcePawn.
dvander@0
     6
 *
dvander@137
     7
 * SourcePawn is free software: you can redistribute it and/or modify it under
dvander@0
     8
 * the terms of the GNU General Public License as published by the Free
dvander@0
     9
 * Software Foundation, either version 3 of the License, or (at your option)
dvander@0
    10
 * any later version.
dvander@0
    11
 * 
dvander@137
    12
 * SourcePawn is distributed in the hope that it will be useful, but WITHOUT ANY
dvander@0
    13
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
dvander@0
    14
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
dvander@0
    15
 *
dvander@0
    16
 * You should have received a copy of the GNU General Public License along with
dvander@137
    17
 * SourcePawn. If not, see http://www.gnu.org/licenses/.
dvander@0
    18
 */
dvander@0
    19
#ifndef _include_name_binding_h_
dvander@0
    20
#define _include_name_binding_h_
dvander@0
    21
dvander@195
    22
#include "../PoolAllocator.h"
dvander@195
    23
#include "../Types.h"
dvander@25
    24
#include "Scanner.h"
dvander@0
    25
dvander@59
    26
namespace ke {
dvander@0
    27
dvander@195
    28
class Zone;
dvander@195
    29
class CompileContext;
dvander@195
    30
struct TranslationUnit;
dvander@0
    31
dvander@195
    32
// Creates symbols and types for names that are global or can be derived from a global.
dvander@195
    33
bool PopulateNamesAndTypes(Zone *zone, CompileContext &cc, TranslationUnit *unit);
dvander@1
    34
dvander@195
    35
// Bind all outstanding names and finalize all unfinished types.
dvander@195
    36
bool BindNamesAndTypes(Zone *zone, CompileContext &cc, TranslationUnit *unit);
dvander@0
    37
dvander@0
    38
}
dvander@0
    39
dvander@0
    40
#endif // _include_name_binding_h_