Fix memory leak at startup / exit
[scilab.git] / scilab / modules / ast / includes / parse / parse.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 /**
14  ** \file parse.hh
15  ** Declaration shared between the scanner and the parser but private
16  ** to the parse module.
17  */
18
19 #ifndef PARSE_HH_
20 #define PARSE_HH_
21
22 #include <string>
23 #include <iostream>
24 #include <errno.h>
25 #include "exit_status.hxx"
26 #include "all.hxx"
27
28
29 typedef struct __EXPRESSIONLINEBREAK__
30 {
31     bool bVerbose;
32     int iNbBreaker;
33 } LineBreakStr;
34
35
36 /**
37 define YYLTYPE to override Bison Default Location
38 */
39 #define YYLTYPE Location
40 #include "parsescilab.hxx"
41
42 /** \brief Parsing entry . */
43 //int yylex(YYSTYPE *yylval, YYLTYPE *yylloc);
44 int yylex(void);
45
46 /** \brief Parsing error . */
47 void yyerror(std::string msg);
48
49
50 /** \brief FIXME . */
51 int scan_throw(int);
52
53 int get_last_token();
54
55 /** \brief For scanner just step . */
56 void scan_step(void);
57
58 /** \brief Error from the scanner (from scanscilab) . */
59 void scan_error(std::string msg);
60
61 /** \brief Open the scanner step (from scanscilab) . */
62 void scan_open(const std::string &name);
63
64 /** \brief Close the scanner step (from scanscilab) . */
65 void scan_close(void);
66
67 /** \brief Convert exponent numbers to C standard . */
68 void scan_exponent_convert(char *in);
69
70 /** \brief Parse/Scan error message displat . */
71 void PrintError(std::string msg);
72
73 #endif /* !PARSE_HH_ */