srecord: arglex/tool.h Source File

srecord 1.65.0

Loading...
Searching...
No Matches
tool.h
Go to the documentation of this file.
1//
2// srecord - manipulate eprom load files
3// Copyright (C) 1998-2014 Peter Miller
4// Copyright (C) 2014 Scott Finneran
5//
6// This program is free software; you can redistribute it and/or modify
7// it under the terms of the GNU Lesser General Public License as published by
8// the Free Software Foundation; either version 3 of the License, or (at
9// your option) any later version.
10//
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public License
17// along with this program. If not, see <http://www.gnu.org/licenses/>.
18//
19
20#ifndef SRECORD_ARGLEX_TOOL_H
21#define SRECORD_ARGLEX_TOOL_H
22
23#include <srecord/arglex.h>
24#include <srecord/defcon.h>
25#include <srecord/endian.h>
26#include <srecord/input.h>
27#include <srecord/output.h>
28
29
30namespace srecord
31{
32
33class interval; // forward
34
35/**
36 * The srecord::arglex_tool is used to parse command line with srec-specific
37 * arguments.
38 */
39 class arglex_tool:
40 public arglex
41{
42public:
43 enum
44 {
45 token_a430 = arglex::token_MAX,
46 token_adler16_be,
47 token_adler16_le,
48 token_adler32_be,
49 token_adler32_le,
50 token_and,
51 token_aomf,
52 token_ascii_hex,
53 token_assembler,
54 token_atmel_generic_be,
55 token_atmel_generic_le,
56 token_basic_data,
57 token_big,
58 token_binary,
59 token_bitrev,
60 token_brecord,
61 token_byte_swap,
62 token_c_array,
63 token_c_compressed,
64 token_checksum_be_bitnot,
65 token_checksum_be_negative,
66 token_checksum_be_positive,
67 token_checksum_le_bitnot,
68 token_checksum_le_negative,
69 token_checksum_le_positive,
70 token_cl430,
71 token_constant,
72 token_constant_be,
73 token_constant_le,
74 token_constant_not,
75 token_contradictory_bytes,
76 token_cosmac,
77 token_crc16_augment,
78 token_crc16_augment_not,
79 token_crc16_be,
80 token_crc16_broken,
81 token_crc16_ccitt,
82 token_crc16_le,
83 token_crc16_least_to_most,
84 token_crc16_most_to_least,
85 token_crc16_xmodem,
86 token_crc32_be,
87 token_crc32_le,
88 token_crop,
89 token_dec_binary,
90 token_eeprom,
91 token_emon52,
92 token_exclude,
93 token_exclusive_length,
94 token_exclusive_length_be,
95 token_exclusive_length_le,
96 token_exclusive_maximum,
97 token_exclusive_maximum_be,
98 token_exclusive_maximum_le,
99 token_exclusive_minimum,
100 token_exclusive_minimum_be,
101 token_exclusive_minimum_le,
102 token_fairchild,
103 token_fast_load,
104 token_fill,
105 token_fletcher16_be,
106 token_fletcher16_le,
107 token_fletcher32_be,
108 token_fletcher32_le,
109 token_formatted_binary,
110 token_forth,
111 token_four_packed_code,
112 token_gcrypt,
113 token_generator,
114 token_guess,
115 token_haval,
116 token_hexdump,
117 token_hp64k,
118 token_idt,
119 token_ignore_checksums,
120 token_lattice_memory_initialization_format,
121 token_logisim,
122 token_include,
123 token_include_not,
124 token_intel,
125 token_intel16,
126 token_intersection,
127 token_length,
128 token_length_be,
129 token_length_le,
130 token_maximum_address,
131 token_maximum_be,
132 token_maximum_le,
133 token_md2,
134 token_md5,
135 token_memory_initialization_file,
136 token_minimum_address,
137 token_minimum_be,
138 token_minimum_le,
139 token_minus,
140 token_mips_flash_be,
141 token_mips_flash_le,
142 token_mos_tech,
143 token_motorola,
144 token_msbin,
145 token_multiple,
146 token_needham_hex,
147 token_not,
148 token_offset,
149 token_ohio_scientific,
150 token_or,
151 token_output,
152 token_output_word,
153 token_over,
154 token_paren_begin,
155 token_paren_end,
156 token_polynomial,
157 token_postfix,
158 token_ppb,
159 token_ppx,
160 token_prefix,
161 token_ram,
162 token_random,
163 token_random_fill,
164 token_range_padding,
165 token_redundant_bytes,
166 token_repeat_data,
167 token_repeat_string,
168 token_rmd160,
169 token_round_down,
170 token_round_nearest,
171 token_round_up,
172 token_sequence_warnings_disable,
173 token_sequence_warnings_enable,
174 token_sha1,
175 token_sha224,
176 token_sha256,
177 token_sha384,
178 token_sha512,
179 token_signetics,
180 token_spasm_be,
181 token_spasm_le,
182 token_spectrum,
183 token_split,
184 token_stewie,
185 token_stm32_crc_be,
186 token_stm32_crc_le,
187 token_style_dot,
188 token_style_hexadecimal,
189 token_style_hexadecimal_not,
190 token_style_section,
191 token_tektronix,
192 token_tektronix_extended,
193 token_tiger,
194 token_ti_tagged,
195 token_ti_tagged_16,
196 token_ti_txt,
197 token_trs80,
198 token_unfill,
199 token_union,
200 token_unsplit,
201 token_vhdl,
202 token_vmem,
203 token_whirlpool,
204 token_wilson,
205 token_within,
206 token_xilinx_coefficient_file,
207 token_xor,
208 token_MAX
209 };
210
211 /**
212 * The destructor.
213 */
214 virtual ~arglex_tool();
215
216 /**
217 * The constructor. Pass the argc and argv as given to main;
218 * there is not need to change the values at all.
219 */
220 arglex_tool(int argc, char **argv);
221
222 /**
223 * The get_input method is used to parse an input specification
224 * (filename, file format, filters, everything) from the
225 * command line.
226 *
227 * If the parse is unsuccessful (is not present on command
228 * line) a fatal error will be issued and the method call will
229 * not return.
230 */
231 input::pointer get_input(void);
232
233 /**
234 * The get_output method is used to parse an output specification
235 * (filename and file format) from the command line.
236 *
237 * If the parse is unsuccessful (is not present on command
238 * line) a fatal error will be issued and the method call will
239 * not return.
240 */
241 output::pointer get_output(void);
242
243 /**
244 * The get_number method is used to parse a numeric value from the
245 * command line.
246 */
247 unsigned long get_number(const char *caption);
248
249 /**
250 * The get_number method is used to parse a numeric value
251 * from the command line, and check it agains a specified range.
252 *
253 * @param caption
254 * for the error message, if necessary
255 * @param min
256 * The minimum acceptable value (inclusive)
257 * @param max
258 * The maximum acceptable value (inclusive)
259 */
260 unsigned long get_number(const char *caption, long min, long max);
261
262 /**
263 * The can_get_number method is used to determine if it is possible
264 * to parse a number from the next token on the command line.
265 */
266 bool can_get_number(void) const;
267
268 /**
269 * The get_interval method is used to parse an interval
270 * set form the command line. It consists of as many
271 * get_interval_inner()s as possible.
272 *
273 * Used by the get_input method to parse the address intervals used
274 * by various filters. It is the lowest precedence level, and
275 * handsles set union (the implicit operator) and set difference
276 * (the - operator).
277 *
278 * If the parse is unsuccessful (is not present on command
279 * line) a fatal error will be issued and the method call will
280 * not return.
281 */
282 interval get_interval(const char *err_msg_caption);
283
284 /**
285 * The get_interval_small method may be used to parse an interval
286 * set form the command line. It checks that the interval is
287 * <=1GB, and errors if it is not, with a --big override. Commonly
288 * used to sanity check things like --fill.
289 */
290 interval get_interval_small(const char *err_msg_caption);
291
292 /**
293 * The get_string method may be used to get a string from the
294 * command line, or issue a fatal error if one is not available.
295 *
296 * @param caption
297 * The text for the error message.
298 */
299 std::string get_string(const char *caption);
300
301 // See base class for documentation.
302 void default_command_line_processing(void);
303
304 defcon_t get_redundant_bytes(void) const { return redundant_bytes; }
305 defcon_t get_contradictory_bytes(void) const { return contradictory_bytes; }
306
307private:
308 /**
309 * The get_interval_factor method is used to parse a single
310 * interval from the command line (usually, a pair of number
311 * representing the [lower, upper) bounds, but it could be
312 * -over or -within, too).
313 *
314 * This method parses the highest precedence operators in the range
315 * parsing.
316 *
317 * This method should only every be called by the get_interval_term
318 * method.
319 *
320 * If the parse is unsuccessful (is not present on command
321 * line) a fatal error will be issued and the method call will
322 * not return.
323 */
324 interval get_interval_factor(const char *err_msg_caption);
325
326 /**
327 * The get_interval_term method is used to parse set-intersection
328 * precedence intervals from the command line. This method parses
329 * the middle precedence operators in the range parsing.
330 *
331 * This method should only every be called by the get_interval_term
332 * method.
333 *
334 * If the parse is unsuccessful (is not present on command
335 * line) a fatal error will be issued and the method call will
336 * not return.
337 */
338 interval get_interval_term(const char *err_msg_caption);
339
340 /**
341 * The get_address method is used to parse an address from the
342 * command line.
343 *
344 * If the parse is unsuccessful (is not present on command
345 * line) a fatal error will be issued and the method call will
346 * not return.
347 */
348 void get_address(const char *err_msg_caption, unsigned long &addr);
349
350 /**
351 * The get_address_and_nbytes method is used to parse an address
352 * and a byte count from the command line.
353 *
354 * If the parse is unsuccessful (is not present on command
355 * line) a fatal error will be issued and the method call will
356 * not return.
357 */
358 void get_address_and_nbytes(const char *err_msg_caption,
359 unsigned long &addr, int &nbytes);
360
361 /**
362 * The get_address_nbytes_width method is used to parse an address
363 * a byte count and a width from the command line.
364 *
365 * If the parse is unsuccessful (is not present on command
366 * line) a fatal error will be issued and the method call will
367 * not return.
368 */
369 void get_address_nbytes_width(const char *err_msg_caption,
370 unsigned long &addr, int &nbytes, int &width);
371
372 /**
373 * The stdin_used instance variable is used to remember whether
374 * or not the standard input has been used by a filter, yet.
375 * Only one use of the standard input may be made; the second
376 * use will result in a fatal error.
377 */
378 bool stdin_used;
379
380 /**
381 * The stdout_used instance variable is used to remember whether
382 * or not the standard output has been used by a filter, yet.
383 * Only one use of the standard output may be made; the second
384 * use will result in a fatal error.
385 */
386 bool stdout_used;
387
388 /**
389 * The issue_sequence_warnings instance variable is used to
390 * remember whether or not to issue data sequence warnings when
391 * data records are not in strictly ascending address order.
392 *
393 * Negative means not set from the command line, zero means diabled
394 * from the command line, positive means enabled on the command
395 * line.
396 */
397 int issue_sequence_warnings;
398
399 /**
400 * The get_simple_input method is used to parse an input filename
401 * or generator from the command line. It shall only be used by
402 * the #get_input method.
403 *
404 * If the parse is unsuccessful (is not present on command
405 * line) a fatal error will be issued and the method call will
406 * not return.
407 */
408 input::pointer get_simple_input();
409
410 /**
411 * The get_endian_by_token method is sued to obtain the endian-ness
412 * of a given token. This is for when there are big-endian and
413 * little-endian variants of filters and file formats.
414 *
415 * @param tok
416 * the noken the endien-ness is required for.
417 */
418 endian_t get_endian_by_token(int tok) const;
419
420 /**
421 * The get_endian_by_token method is sued to obtain the endian-ness
422 * of the current token.
423 */
424 endian_t
425 get_endian_by_token(void)
426 const
427 {
428 return get_endian_by_token(token_cur());
429 }
430
431 /**
432 * The get_inclusive_by_token method is used to determine whether
433 * or not a token is inclusive (e.g. token_length_be) or exclusive
434 * (e.g. token_exclusive_length_be).
435 *
436 * @param tok
437 * The token to examine.
438 */
439 bool get_inclusive_by_token(int tok) const;
440
441 /**
442 * The get_inclusive_by_token method is used to determine whether
443 * or not the current token is inclusive or exclusive.
444 */
445 bool
446 get_inclusive_by_token(void)
447 const
448 {
449 return get_inclusive_by_token(token_cur());
450 }
451
452 /**
453 * The redundant_bytes instance variable is used to remember what
454 * to do when faced with multiple identical byte values for a
455 * memory address.
456 */
457 defcon_t redundant_bytes;
458
459 /**
460 * The vontradivtory_bytes instance variable is used to remember what
461 * to do when faced with multiple different byte values for a
462 * memory address.
463 */
464 defcon_t contradictory_bytes;
465
466 /**
467 * The default constructor. Do not use.
468 */
469 arglex_tool();
470
471 /**
472 * The copy constructor. Do not use.
473 */
474 arglex_tool(const arglex_tool &);
475
476 /**
477 * The assignment operator. Do not use.
478 */
479 arglex_tool &operator=(const arglex_tool &);
480};
481
482};
483
484// vim: set ts=8 sw=4 et :
485#endif // SRECORD_ARGLEX_TOOL_H
arglex.h
srecord::arglex_tool::get_interval
interval get_interval(const char *err_msg_caption)
The get_interval method is used to parse an interval set form the command line.
srecord::arglex_tool::default_command_line_processing
void default_command_line_processing(void)
The default_command_line_processing method is used to process command line arguments not handled by t...
srecord::arglex_tool::get_interval_small
interval get_interval_small(const char *err_msg_caption)
The get_interval_small method may be used to parse an interval set form the command line.
srecord::arglex_tool::~arglex_tool
virtual ~arglex_tool()
The destructor.
srecord::arglex_tool::can_get_number
bool can_get_number(void) const
The can_get_number method is used to determine if it is possible to parse a number from the next toke...
srecord::arglex_tool::get_number
unsigned long get_number(const char *caption)
The get_number method is used to parse a numeric value from the command line.
srecord::arglex_tool::get_string
std::string get_string(const char *caption)
The get_string method may be used to get a string from the command line, or issue a fatal error if on...
srecord::arglex_tool::token_vmem
@ token_vmem
Definition tool.h:202
srecord::arglex_tool::token_hp64k
@ token_hp64k
Definition tool.h:117
srecord::arglex_tool::token_idt
@ token_idt
Definition tool.h:118
srecord::arglex_tool::token_exclusive_minimum
@ token_exclusive_minimum
Definition tool.h:99
srecord::arglex_tool::token_rmd160
@ token_rmd160
Definition tool.h:168
srecord::arglex_tool::token_minus
@ token_minus
Definition tool.h:139
srecord::arglex_tool::token_sha224
@ token_sha224
Definition tool.h:175
srecord::arglex_tool::token_whirlpool
@ token_whirlpool
Definition tool.h:203
srecord::arglex_tool::token_ascii_hex
@ token_ascii_hex
Definition tool.h:52
srecord::arglex_tool::token_contradictory_bytes
@ token_contradictory_bytes
Definition tool.h:75
srecord::arglex_tool::token_or
@ token_or
Definition tool.h:150
srecord::arglex_tool::token_xor
@ token_xor
Definition tool.h:207
srecord::arglex_tool::token_maximum_le
@ token_maximum_le
Definition tool.h:132
srecord::arglex_tool::token_stewie
@ token_stewie
Definition tool.h:184
srecord::arglex_tool::token_minimum_be
@ token_minimum_be
Definition tool.h:137
srecord::arglex_tool::token_round_nearest
@ token_round_nearest
Definition tool.h:170
srecord::arglex_tool::token_exclusive_maximum
@ token_exclusive_maximum
Definition tool.h:96
srecord::arglex_tool::token_maximum_address
@ token_maximum_address
Definition tool.h:130
srecord::arglex_tool::token_unfill
@ token_unfill
Definition tool.h:198
srecord::arglex_tool::token_crc16_least_to_most
@ token_crc16_least_to_most
Definition tool.h:83
srecord::arglex_tool::token_length_be
@ token_length_be
Definition tool.h:128
srecord::arglex_tool::token_atmel_generic_be
@ token_atmel_generic_be
Definition tool.h:54
srecord::arglex_tool::token_crc16_be
@ token_crc16_be
Definition tool.h:79
srecord::arglex_tool::token_bitrev
@ token_bitrev
Definition tool.h:59
srecord::arglex_tool::token_crc16_broken
@ token_crc16_broken
Definition tool.h:80
srecord::arglex_tool::token_tektronix
@ token_tektronix
Definition tool.h:191
srecord::arglex_tool::token_fletcher16_be
@ token_fletcher16_be
Definition tool.h:105
srecord::arglex_tool::token_style_hexadecimal
@ token_style_hexadecimal
Definition tool.h:188
srecord::arglex_tool::token_crc16_most_to_least
@ token_crc16_most_to_least
Definition tool.h:84
srecord::arglex_tool::token_generator
@ token_generator
Definition tool.h:113
srecord::arglex_tool::token_sequence_warnings_disable
@ token_sequence_warnings_disable
Definition tool.h:172
srecord::arglex_tool::token_multiple
@ token_multiple
Definition tool.h:145
srecord::arglex_tool::token_crc32_be
@ token_crc32_be
Definition tool.h:86
srecord::arglex_tool::token_style_dot
@ token_style_dot
Definition tool.h:187
srecord::arglex_tool::token_sha1
@ token_sha1
Definition tool.h:174
srecord::arglex_tool::token_c_array
@ token_c_array
Definition tool.h:62
srecord::arglex_tool::token_hexdump
@ token_hexdump
Definition tool.h:116
srecord::arglex_tool::token_intel
@ token_intel
Definition tool.h:124
srecord::arglex_tool::token_ram
@ token_ram
Definition tool.h:161
srecord::arglex_tool::token_atmel_generic_le
@ token_atmel_generic_le
Definition tool.h:55
srecord::arglex_tool::token_tiger
@ token_tiger
Definition tool.h:193
srecord::arglex_tool::token_mips_flash_be
@ token_mips_flash_be
Definition tool.h:140
srecord::arglex_tool::token_crc16_augment_not
@ token_crc16_augment_not
Definition tool.h:78
srecord::arglex_tool::token_ppx
@ token_ppx
Definition tool.h:159
srecord::arglex_tool::token_checksum_be_bitnot
@ token_checksum_be_bitnot
Definition tool.h:64
srecord::arglex_tool::token_spectrum
@ token_spectrum
Definition tool.h:182
srecord::arglex_tool::token_prefix
@ token_prefix
Definition tool.h:160
srecord::arglex_tool::token_length_le
@ token_length_le
Definition tool.h:129
srecord::arglex_tool::token_eeprom
@ token_eeprom
Definition tool.h:90
srecord::arglex_tool::token_haval
@ token_haval
Definition tool.h:115
srecord::arglex_tool::token_sequence_warnings_enable
@ token_sequence_warnings_enable
Definition tool.h:173
srecord::arglex_tool::token_basic_data
@ token_basic_data
Definition tool.h:56
srecord::arglex_tool::token_range_padding
@ token_range_padding
Definition tool.h:164
srecord::arglex_tool::token_forth
@ token_forth
Definition tool.h:110
srecord::arglex_tool::token_crc16_le
@ token_crc16_le
Definition tool.h:82
srecord::arglex_tool::token_ppb
@ token_ppb
Definition tool.h:158
srecord::arglex_tool::token_checksum_le_positive
@ token_checksum_le_positive
Definition tool.h:69
srecord::arglex_tool::token_crc16_augment
@ token_crc16_augment
Definition tool.h:77
srecord::arglex_tool::token_random
@ token_random
Definition tool.h:162
srecord::arglex_tool::token_constant_le
@ token_constant_le
Definition tool.h:73
srecord::arglex_tool::token_logisim
@ token_logisim
Definition tool.h:121
srecord::arglex_tool::token_unsplit
@ token_unsplit
Definition tool.h:200
srecord::arglex_tool::token_cl430
@ token_cl430
Definition tool.h:70
srecord::arglex_tool::token_c_compressed
@ token_c_compressed
Definition tool.h:63
srecord::arglex_tool::token_ti_txt
@ token_ti_txt
Definition tool.h:196
srecord::arglex_tool::token_ignore_checksums
@ token_ignore_checksums
Definition tool.h:119
srecord::arglex_tool::token_checksum_be_positive
@ token_checksum_be_positive
Definition tool.h:66
srecord::arglex_tool::token_spasm_be
@ token_spasm_be
Definition tool.h:180
srecord::arglex_tool::token_stm32_crc_le
@ token_stm32_crc_le
Definition tool.h:186
srecord::arglex_tool::token_length
@ token_length
Definition tool.h:127
srecord::arglex_tool::token_aomf
@ token_aomf
Definition tool.h:51
srecord::arglex_tool::token_MAX
@ token_MAX
Definition tool.h:208
srecord::arglex_tool::token_ohio_scientific
@ token_ohio_scientific
Definition tool.h:149
srecord::arglex_tool::token_formatted_binary
@ token_formatted_binary
Definition tool.h:109
srecord::arglex_tool::token_motorola
@ token_motorola
Definition tool.h:143
srecord::arglex_tool::token_polynomial
@ token_polynomial
Definition tool.h:156
srecord::arglex_tool::token_emon52
@ token_emon52
Definition tool.h:91
srecord::arglex_tool::token_fill
@ token_fill
Definition tool.h:104
srecord::arglex_tool::token_wilson
@ token_wilson
Definition tool.h:204
srecord::arglex_tool::token_sha512
@ token_sha512
Definition tool.h:178
srecord::arglex_tool::token_repeat_data
@ token_repeat_data
Definition tool.h:166
srecord::arglex_tool::token_round_up
@ token_round_up
Definition tool.h:171
srecord::arglex_tool::token_a430
@ token_a430
Definition tool.h:45
srecord::arglex_tool::token_style_section
@ token_style_section
Definition tool.h:190
srecord::arglex_tool::token_ti_tagged
@ token_ti_tagged
Definition tool.h:194
srecord::arglex_tool::token_adler32_be
@ token_adler32_be
Definition tool.h:48
srecord::arglex_tool::token_over
@ token_over
Definition tool.h:153
srecord::arglex_tool::token_exclude
@ token_exclude
Definition tool.h:92
srecord::arglex_tool::token_constant_be
@ token_constant_be
Definition tool.h:72
srecord::arglex_tool::token_maximum_be
@ token_maximum_be
Definition tool.h:131
srecord::arglex_tool::token_assembler
@ token_assembler
Definition tool.h:53
srecord::arglex_tool::token_big
@ token_big
Definition tool.h:57
srecord::arglex_tool::token_constant
@ token_constant
Definition tool.h:71
srecord::arglex_tool::token_output_word
@ token_output_word
Definition tool.h:152
srecord::arglex_tool::token_crc32_le
@ token_crc32_le
Definition tool.h:87
srecord::arglex_tool::token_mips_flash_le
@ token_mips_flash_le
Definition tool.h:141
srecord::arglex_tool::token_postfix
@ token_postfix
Definition tool.h:157
srecord::arglex_tool::token_exclusive_length_le
@ token_exclusive_length_le
Definition tool.h:95
srecord::arglex_tool::token_redundant_bytes
@ token_redundant_bytes
Definition tool.h:165
srecord::arglex_tool::token_within
@ token_within
Definition tool.h:205
srecord::arglex_tool::token_gcrypt
@ token_gcrypt
Definition tool.h:112
srecord::arglex_tool::token_lattice_memory_initialization_format
@ token_lattice_memory_initialization_format
Definition tool.h:120
srecord::arglex_tool::token_exclusive_maximum_be
@ token_exclusive_maximum_be
Definition tool.h:97
srecord::arglex_tool::token_fletcher32_be
@ token_fletcher32_be
Definition tool.h:107
srecord::arglex_tool::token_mos_tech
@ token_mos_tech
Definition tool.h:142
srecord::arglex_tool::token_cosmac
@ token_cosmac
Definition tool.h:76
srecord::arglex_tool::token_fletcher32_le
@ token_fletcher32_le
Definition tool.h:108
srecord::arglex_tool::token_exclusive_minimum_le
@ token_exclusive_minimum_le
Definition tool.h:101
srecord::arglex_tool::token_needham_hex
@ token_needham_hex
Definition tool.h:146
srecord::arglex_tool::token_crc16_xmodem
@ token_crc16_xmodem
Definition tool.h:85
srecord::arglex_tool::token_binary
@ token_binary
Definition tool.h:58
srecord::arglex_tool::token_checksum_le_bitnot
@ token_checksum_le_bitnot
Definition tool.h:67
srecord::arglex_tool::token_adler16_be
@ token_adler16_be
Definition tool.h:46
srecord::arglex_tool::token_not
@ token_not
Definition tool.h:147
srecord::arglex_tool::token_split
@ token_split
Definition tool.h:183
srecord::arglex_tool::token_brecord
@ token_brecord
Definition tool.h:60
srecord::arglex_tool::token_md5
@ token_md5
Definition tool.h:134
srecord::arglex_tool::token_msbin
@ token_msbin
Definition tool.h:144
srecord::arglex_tool::token_crop
@ token_crop
Definition tool.h:88
srecord::arglex_tool::token_trs80
@ token_trs80
Definition tool.h:197
srecord::arglex_tool::token_xilinx_coefficient_file
@ token_xilinx_coefficient_file
Definition tool.h:206
srecord::arglex_tool::token_repeat_string
@ token_repeat_string
Definition tool.h:167
srecord::arglex_tool::token_style_hexadecimal_not
@ token_style_hexadecimal_not
Definition tool.h:189
srecord::arglex_tool::token_adler16_le
@ token_adler16_le
Definition tool.h:47
srecord::arglex_tool::token_md2
@ token_md2
Definition tool.h:133
srecord::arglex_tool::token_union
@ token_union
Definition tool.h:199
srecord::arglex_tool::token_byte_swap
@ token_byte_swap
Definition tool.h:61
srecord::arglex_tool::token_guess
@ token_guess
Definition tool.h:114
srecord::arglex_tool::token_adler32_le
@ token_adler32_le
Definition tool.h:49
srecord::arglex_tool::token_intersection
@ token_intersection
Definition tool.h:126
srecord::arglex_tool::token_fairchild
@ token_fairchild
Definition tool.h:102
srecord::arglex_tool::token_constant_not
@ token_constant_not
Definition tool.h:74
srecord::arglex_tool::token_round_down
@ token_round_down
Definition tool.h:169
srecord::arglex_tool::token_fast_load
@ token_fast_load
Definition tool.h:103
srecord::arglex_tool::token_paren_begin
@ token_paren_begin
Definition tool.h:154
srecord::arglex_tool::token_stm32_crc_be
@ token_stm32_crc_be
Definition tool.h:185
srecord::arglex_tool::token_vhdl
@ token_vhdl
Definition tool.h:201
srecord::arglex_tool::token_random_fill
@ token_random_fill
Definition tool.h:163
srecord::arglex_tool::token_and
@ token_and
Definition tool.h:50
srecord::arglex_tool::token_crc16_ccitt
@ token_crc16_ccitt
Definition tool.h:81
srecord::arglex_tool::token_checksum_le_negative
@ token_checksum_le_negative
Definition tool.h:68
srecord::arglex_tool::token_signetics
@ token_signetics
Definition tool.h:179
srecord::arglex_tool::token_sha384
@ token_sha384
Definition tool.h:177
srecord::arglex_tool::token_checksum_be_negative
@ token_checksum_be_negative
Definition tool.h:65
srecord::arglex_tool::token_paren_end
@ token_paren_end
Definition tool.h:155
srecord::arglex_tool::token_intel16
@ token_intel16
Definition tool.h:125
srecord::arglex_tool::token_include
@ token_include
Definition tool.h:122
srecord::arglex_tool::token_fletcher16_le
@ token_fletcher16_le
Definition tool.h:106
srecord::arglex_tool::token_tektronix_extended
@ token_tektronix_extended
Definition tool.h:192
srecord::arglex_tool::token_exclusive_length_be
@ token_exclusive_length_be
Definition tool.h:94
srecord::arglex_tool::token_offset
@ token_offset
Definition tool.h:148
srecord::arglex_tool::token_exclusive_length
@ token_exclusive_length
Definition tool.h:93
srecord::arglex_tool::token_sha256
@ token_sha256
Definition tool.h:176
srecord::arglex_tool::token_spasm_le
@ token_spasm_le
Definition tool.h:181
srecord::arglex_tool::token_output
@ token_output
Definition tool.h:151
srecord::arglex_tool::token_exclusive_minimum_be
@ token_exclusive_minimum_be
Definition tool.h:100
srecord::arglex_tool::token_include_not
@ token_include_not
Definition tool.h:123
srecord::arglex_tool::token_four_packed_code
@ token_four_packed_code
Definition tool.h:111
srecord::arglex_tool::token_minimum_le
@ token_minimum_le
Definition tool.h:138
srecord::arglex_tool::token_dec_binary
@ token_dec_binary
Definition tool.h:89
srecord::arglex_tool::token_ti_tagged_16
@ token_ti_tagged_16
Definition tool.h:195
srecord::arglex_tool::token_memory_initialization_file
@ token_memory_initialization_file
Definition tool.h:135
srecord::arglex_tool::token_exclusive_maximum_le
@ token_exclusive_maximum_le
Definition tool.h:98
srecord::arglex_tool::token_minimum_address
@ token_minimum_address
Definition tool.h:136
srecord::arglex_tool::get_input
input::pointer get_input(void)
The get_input method is used to parse an input specification (filename, file format,...
srecord::arglex_tool::get_contradictory_bytes
defcon_t get_contradictory_bytes(void) const
Definition tool.h:305
srecord::arglex_tool::get_output
output::pointer get_output(void)
The get_output method is used to parse an output specification (filename and file format) from the co...
srecord::arglex_tool::get_redundant_bytes
defcon_t get_redundant_bytes(void) const
Definition tool.h:304
srecord::arglex_tool::arglex_tool
arglex_tool(int argc, char **argv)
The constructor.
srecord::arglex_tool::get_number
unsigned long get_number(const char *caption, long min, long max)
The get_number method is used to parse a numeric value from the command line, and check it agains a s...
srecord::arglex::token_cur
int token_cur() const
The token_cur method is used to get the type of the current token.
Definition arglex.h:238
srecord::arglex::token_MAX
@ token_MAX
Definition arglex.h:63
srecord::arglex::arglex
arglex()
The default constructor.
srecord::input::pointer
std::shared_ptr< input > pointer
Definition input.h:41
srecord::interval
The interval class is used to represent a set of integer values, usually composed of runs of adjacent...
Definition interval.h:36
srecord::output::pointer
std::shared_ptr< output > pointer
Definition output.h:41
defcon.h
endian.h
input.h
srecord
Definition adler16.h:25
srecord::defcon_t
defcon_t
Definition defcon.h:26
srecord::endian_t
endian_t
Definition endian.h:27
output.h