cs2_parse
 Alle Datenstrukturen Dateien Funktionen Variablen Makrodefinitionen Gruppen Seiten
cs2parse.h
gehe zur Dokumentation dieser Datei
1 #ifndef CS2PARSE_H
2 #define CS2PARSE_H
3 
17 #include <boolean.h>
18 #include <scanner.h>
19 
29 #define PARSER_ERROR 0x00
30 #define PARSER_EOF 0x01
31 #define PARSER_PARAGRAPH 0x02
32 #define PARSER_VALUE 0x03
33 
38 #define PARSER_PARAGRAPH_UNDEFINED 0x00
39 #define PARSER_PARAGRAPH_LOK 0x01
40 #define PARSER_PARAGRAPH_NUMLOKS 0x02
41 #define PARSER_PARAGRAPH_LOKOMOTIVE 0x03
42 #define PARSER_PARAGRAPH_GERAET 0x04
43 #define PARSER_PARAGRAPH_GLEISBILD 0x05
44 #define PARSER_PARAGRAPH_MAGNETARTIKEL 0x06
45 #define PARSER_PARAGRAPH_FAHRSTRASSEN 0x07
46 #define PARSER_PARAGRAPH_GLEISBILDSEITE 0x08
47 #define PARSER_PARAGRAPH_LOKSTATUS 0x09
48 #define PARSER_PARAGRAPH_LOKLISTE 0x0A
49 
53 #define PARSER_VALUE_LOK 0x01
54 #define PARSER_VALUE_NAME 0x02
55 #define PARSER_VALUE_WERT 0x03
56 #define PARSER_VALUE_UID 0x04
57 #define PARSER_VALUE_ADRESSE 0x05
58 #define PARSER_VALUE_TYP 0x06
59 #define PARSER_VALUE_MFXUID 0x07
60 #define PARSER_VALUE_SYMBOL 0x08
61 #define PARSER_VALUE_AV 0x09
62 #define PARSER_VALUE_BV 0x0a
63 #define PARSER_VALUE_VOLUME 0x0b
64 #define PARSER_VALUE_VELOCITY 0x0c
65 #define PARSER_VALUE_RICHTUNG 0x0d
66 #define PARSER_VALUE_VMAX 0x0e
67 #define PARSER_VALUE_VMIN 0x0f
68 #define PARSER_VALUE_FKT 0x10
69 #define PARSER_VALUE_DAUER 0x11
70 #define PARSER_VALUE_GERAET 0x12
71 #define PARSER_VALUE_VERSION 0x13
72 #define PARSER_VALUE_MINOR 0x14
73 #define PARSER_VALUE_SERNUM 0x15
74 #define PARSER_VALUE_GFPUID 0x16
75 #define PARSER_VALUE_GUIUID 0x17
76 #define PARSER_VALUE_HARDVERS 0x18
77 #define PARSER_VALUE_MAJOR 0x19
78 #define PARSER_VALUE_SESSION 0x20
79 #define PARSER_VALUE_ID 0x21
80 #define PARSER_VALUE_LOKOMOTIVE 0x22
81 #define PARSER_VALUE_SID 0x24
82 #define PARSER_VALUE_ICON 0x25
83 #define PARSER_VALUE_TACHOMAX 0x26
84 #define PARSER_VALUE_XPROTOKOLL 0x27
85 #define PARSER_VALUE_MFXTYP 0x28
86 #define PARSER_VALUE_STAND 0x29
87 #define PARSER_VALUE_FAHRT 0x2a
88 #define PARSER_VALUE_FUNKTIONEN 0x2b
89 #define PARSER_VALUE_NR 0x2c
90 #define PARSER_VALUE_VORWAERTS 0x2d
91 #define PARSER_VALUE_RUECKWAERTS 0x2e
92 #define PARSER_VALUE_INTRAKTION 0x2f
93 #define PARSER_VALUE_SEITE 0x30
94 #define PARSER_VALUE_GROESSE 0x31
95 #define PARSER_VALUE_ZULETZT_BENUTZT 0x32
96 #define PARSER_VALUE_ARTIKEL 0x33
97 #define PARSER_VALUE_STELLUNG 0x34
98 #define PARSER_VALUE_SCHALTZEIT 0x35
99 #define PARSER_VALUE_UNGERADE 0x36
100 #define PARSER_VALUE_DECODER 0x37
101 #define PARSER_VALUE_DECTYP 0x38
102 #define PARSER_VALUE_FAHRSTRASSE 0x39
103 #define PARSER_VALUE_S88 0x3a
104 #define PARSER_VALUE_S88EIN 0x3b
105 #define PARSER_VALUE_EXTERN 0x3c
106 #define PARSER_VALUE_ITEM 0x3d
107 #define PARSER_VALUE_FSVERWEIS 0x3e
108 #define PARSER_VALUE_MAGNETARTIKEL 0x3f
109 #define PARSER_VALUE_ELEMENT 0x40
110 #define PARSER_VALUE_DREHUNG 0x41
111 #define PARSER_VALUE_TEXT 0x48
112 #define PARSER_VALUE_ZUSTAND 0x49
113 #define PARSER_VALUE_DEVICE_ID 0x50
114 #define PARSER_VALUE_PAGE 0x51
115 #define PARSER_VALUE_SEKUNDE 0x52
116 #define PARSER_VALUE_IDX 0x53
117 #define PARSER_VALUE_ON 0x54
118 #define PARSER_VALUE_DV 0x55
119 #define PARSER_VALUE_LLINDEX 0x56
120 #define PARSER_VALUE_CRC 0x57
121 
129 #define PARSER_TYPE_LOKNAMEN 0x01
130 #define PARSER_TYPE_LOKINFO 0x02
131 #define PARSER_TYPE_GERAET_VRS 0x03
132 #define PARSER_TYPE_LOK_CS2 0x04
133 #define PARSER_TYPE_GLEISBILD_CS2 0x05
134 #define PARSER_TYPE_GLEISBILD_SEITE 0x06
135 #define PARSER_TYPE_MAGNETARTIKEL_CS2 0x07
136 #define PARSER_TYPE_FAHRSTRASSEN_CS2 0x08
137 
144 #define PARSER_TYPE_HEADER_CS2 0x09
145 #define PARSER_TYPE_LOKLISTE 0x0A
146 
151 typedef struct {
152  BOOL Verbose;
153  Scanner *Scanner;
154  int Type;
155  int SubType;
156  int Level;
157  char Name[20];
158  char Value[80];
159 } Cs2parser;
160 
161 Cs2parser *Cs2pCreate(void);
162 void Cs2pDestroy(Cs2parser *Data);
163 void Cs2pInit(Cs2parser *Data, int Type, char *InputLine, int Len);
164 #define Cs2pExit(Data)
165 int Cs2pParse(Cs2parser *Data);
166 
170 #define Cs2pSetVerbose(Data, Val) (Data)->Verbose=Val
171 #define Cs2pSetScanner(Data, Scn) (Data)->Scanner=Scn
172 #define Cs2pSetType(Data, Val) (Data)->Type=Val
173 #define Cs2pSetSubType(Data, Val) (Data)->SubType=Val
174 #define Cs2pSetLevel(Data, Val) (Data)->Level=Val
175 #define Cs2pSetName(Data, Str) strcpy((Data)->Name, Str)
176 #define Cs2pSetValue(Data, Str) strcpy((Data)->Value, Str)
177 
186 #define Cs2pGetVerbose(Data) (Data)->Verbose
187 #define Cs2pGetScanner(Data) (Data)->Scanner
188 
191 #define Cs2pGetType(Data) (Data)->Type
192 
195 #define Cs2pGetSubType(Data) (Data)->SubType
196 
200 #define Cs2pGetLevel(Data) (Data)->Level
201 #define Cs2pGetName(Data) (Data)->Name
202 
206 #define Cs2pGetValue(Data) (Data)->Value
207 
208 #endif