summaryrefslogtreecommitdiff
path: root/web/yacco2/o2linker/o2linker_externs.cpp
blob: f9767979ba45939d44aa89f2efa9c531cc3120f0 (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
43
44
45
46
47
48
49
50
51
52
53
54
/*7:*/
//line 83 "./o2linker_externs.w"

/*6:*/
//line 80 "./o2linker_externs.w"

#include "o2linker_externs.h"
/*:6*/
//line 84 "./o2linker_externs.w"

/*8:*/
//line 89 "./o2linker_externs.w"


yacco2::AST*CWEB_MARKER(0);

/*:8*//*10:*/
//line 112 "./o2linker_externs.w"

extern
void
LINKER_PARSE_CMD_LINE
(const char*Cmd_file,std::string&Ctrl_file,yacco2::TOKEN_GAGGLE&Errors)
{
using namespace NS_yacco2_err_symbols;
using namespace yacco2;
tok_can<std::ifstream> Cmd1_tokens(Cmd_file);
if(Cmd1_tokens.file_ok()==NO){
yacco2::Delete_tokens(Cmd1_tokens.container());
CAbs_lr1_sym*sym= new Err_bad_filename(Cmd_file);
sym->set_external_file_id(1);
sym->set_line_no(1);
sym->set_pos_in_line(1);
Errors.push_back(*sym);
return;
}

using namespace NS_o2_linker_opts;
TOKEN_GAGGLE linker_options_tokens;
Co2_linker_opts opts_fsm;
Parser options(opts_fsm,&Cmd1_tokens,&linker_options_tokens,0,&Errors,0,0);
options.parse();
yacco2::Delete_tokens(Cmd1_tokens.container());
if(Errors.empty()!=YES)return;
Ctrl_file+= opts_fsm.file_to_compile_;
return;
}

/*:10*/
//line 85 "./o2linker_externs.w"



/*:7*/