summaryrefslogtreecommitdiff
path: root/web/yacco2/o2linker/includes.w
blob: 8236682a1f152f7d79992b515da9a6bc7bf3eb41 (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
42
@q file: includes.w@>
@q%   Copyright Dave Bone 1998 - 2015@>
@q% /*@>
@q%    This Source Code Form is subject to the terms of the Mozilla Public@>
@q%    License, v. 2.0. If a copy of the MPL was not distributed with this@>
@q%    file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
@q% */@>
@*2 Include files. 
To start things off, these are the Standard Template Library (STL) containers 
needed by Linker, Yacco2's parse library definitions, and the specific
grammar definitions needed by Linker.
@<Include files@>=
#include "globals.h"
#include "yacco2_stbl.h"
using namespace yacco2_stbl;
#include "o2linker_externs.h"
#include "link_cleanser.h" 
#include "t_alphabet.h" 
#include "fsc_file.h" 
 

@ Include \Olinker header.
@<io2@>=
#include "o2linker.h"

@*2 Create header file for \O2{}linker environment.\fbreak
Note, the ``include search'' directories for the c++ compiler has to be supplied
to the compiler environment used. This must include \Yacco2's library.
@(o2linker.h@>=
@h
#ifndef o2linker__
#define o2linker__ 1
@<Include files@>;
  @<External rtns and variables@>;
#endif

@*2 \O2{}linker implementation.\fbreak
Start the code output to |o2linker.cpp|
by appending its include file.
@(o2linker.cpp@>= 
@<io2@>;
@<accrue linker code@>;