1 | /****************************************************************************** |
---|
2 | |
---|
3 | KPP - The Kinetic PreProcessor |
---|
4 | Builds simulation code for chemical kinetic systems |
---|
5 | |
---|
6 | Copyright (C) -2020 996 Valeriu Damian and Adrian Sandu |
---|
7 | Copyright (C) -2020 005 Adrian Sandu |
---|
8 | |
---|
9 | KPP is free software; you can redistribute it and/or modify it under the |
---|
10 | terms of the GNU General Public License as published by the Free Software |
---|
11 | Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the |
---|
12 | License, or (at your option) any later version. |
---|
13 | |
---|
14 | KPP is distributed in the hope that it will be useful, but WITHOUT ANY |
---|
15 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
---|
16 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
---|
17 | details. |
---|
18 | |
---|
19 | You should have received a copy of the GNU General Public License along |
---|
20 | with this program; if not, consult http://www.gnu.org/copyleft/gpl.html or |
---|
21 | write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
---|
22 | Boston, MA 02111-1307, USA. |
---|
23 | |
---|
24 | Adrian Sandu |
---|
25 | Computer Science Department |
---|
26 | Virginia Polytechnic Institute and State University |
---|
27 | Blacksburg, VA 24060 |
---|
28 | E-mail: sandu@cs.vt.edu |
---|
29 | |
---|
30 | ******************************************************************************/ |
---|
31 | |
---|
32 | |
---|
33 | |
---|
34 | #ifndef _SCAN_H_ |
---|
35 | #define _SCAN_H_ |
---|
36 | |
---|
37 | #include <stdio.h> |
---|
38 | #include "gdef.h" |
---|
39 | |
---|
40 | /* mz_rs_20050518+ value increased */ |
---|
41 | #define MAX_INLINE 10000 |
---|
42 | /* #define MAX_INLINE 4000 */ |
---|
43 | /* mz_rs_20050518- */ |
---|
44 | |
---|
45 | enum eq_state { LHS, RHS, RAT }; |
---|
46 | enum sptypes { DUMMY_SPC, VAR_SPC, RAD_SPC, FIX_SPC }; |
---|
47 | enum atomcheck { NO_CHECK, DO_CHECK, CANCEL_CHECK }; |
---|
48 | enum codetype { APPEND, REPLACE }; |
---|
49 | |
---|
50 | typedef struct { |
---|
51 | int key; |
---|
52 | int type; |
---|
53 | char * kname; |
---|
54 | } INLINE_KEY; |
---|
55 | |
---|
56 | extern int eqState; |
---|
57 | extern int isPhoto; |
---|
58 | extern int crt_line_no; |
---|
59 | extern char *crt_filename; |
---|
60 | extern int crtLine; |
---|
61 | extern char crtFile[]; |
---|
62 | extern char crtToken[]; |
---|
63 | extern char nextToken[]; |
---|
64 | extern int crtTokType; |
---|
65 | extern int nextTokType; |
---|
66 | extern int nError; |
---|
67 | extern int nWarning; |
---|
68 | extern int crt_section; |
---|
69 | |
---|
70 | int Parser( char * filename ); |
---|
71 | void ScanError( char *fmt, ... ); |
---|
72 | void ParserError( char *fmt, ... ); |
---|
73 | void ScanWarning( char *fmt, ... ); |
---|
74 | void ParserWarning( char *fmt, ... ); |
---|
75 | void Error( char *fmt, ... ); |
---|
76 | void Warning( char *fmt, ... ); |
---|
77 | void Message( char *fmt, ... ); |
---|
78 | void FatalError( int status, char *fmt, ... ); |
---|
79 | |
---|
80 | void DeclareAtom( char *atname ); |
---|
81 | void SetAtomType( char *atname, int type ); |
---|
82 | void AddAtom( char *atname, char *nr ); |
---|
83 | void DeclareSpecies( int type, char* spname ); |
---|
84 | void SetSpcType( int type, char *spname ); |
---|
85 | void AssignInitialValue( char *spname , char *spval ); |
---|
86 | void StoreEquationRate( char *rate, char *label ); |
---|
87 | void CheckEquation(); |
---|
88 | void ProcessTerm( int side, char *sign, char *coef, char *spname ); |
---|
89 | void AddLumpSpecies( char *spname ); |
---|
90 | void CheckLump( char *spname ); |
---|
91 | void AddLookAt( char *spname ); |
---|
92 | void AddMonitor( char *spname ); |
---|
93 | void AddTransport( char *spname ); |
---|
94 | |
---|
95 | void WriteAtoms(); |
---|
96 | void WriteSpecies(); |
---|
97 | void WriteMatrices(); |
---|
98 | void WriteOptions(); |
---|
99 | |
---|
100 | char * AppendString( char * s1, char * s2, int * len, int addlen ); |
---|
101 | void AddInlineCode( char * context, char * code ); |
---|
102 | |
---|
103 | #endif |
---|