srecord  1.65.0
srecord::arglex_tool Class Reference

The srecord::arglex_tool is used to parse command line with srec-specific arguments. More...

#include <tool.h>

Inheritance diagram for srecord::arglex_tool:
Collaboration diagram for srecord::arglex_tool:

Public Types

enum  {
  token_a430 = arglex::token_MAX , token_adler16_be , token_adler16_le , token_adler32_be ,
  token_adler32_le , token_and , token_aomf , token_ascii_hex ,
  token_assembler , token_atmel_generic_be , token_atmel_generic_le , token_basic_data ,
  token_big , token_binary , token_bitrev , token_brecord ,
  token_byte_swap , token_c_array , token_c_compressed , token_checksum_be_bitnot ,
  token_checksum_be_negative , token_checksum_be_positive , token_checksum_le_bitnot , token_checksum_le_negative ,
  token_checksum_le_positive , token_cl430 , token_constant , token_constant_be ,
  token_constant_le , token_constant_not , token_contradictory_bytes , token_cosmac ,
  token_crc16_augment , token_crc16_augment_not , token_crc16_be , token_crc16_broken ,
  token_crc16_ccitt , token_crc16_le , token_crc16_least_to_most , token_crc16_most_to_least ,
  token_crc16_xmodem , token_crc32_be , token_crc32_le , token_crop ,
  token_dec_binary , token_eeprom , token_emon52 , token_exclude ,
  token_exclusive_length , token_exclusive_length_be , token_exclusive_length_le , token_exclusive_maximum ,
  token_exclusive_maximum_be , token_exclusive_maximum_le , token_exclusive_minimum , token_exclusive_minimum_be ,
  token_exclusive_minimum_le , token_fairchild , token_fast_load , token_fill ,
  token_fletcher16_be , token_fletcher16_le , token_fletcher32_be , token_fletcher32_le ,
  token_formatted_binary , token_forth , token_four_packed_code , token_gcrypt ,
  token_generator , token_guess , token_haval , token_hexdump ,
  token_hp64k , token_idt , token_ignore_checksums , token_lattice_memory_initialization_format ,
  token_logisim , token_include , token_include_not , token_intel ,
  token_intel16 , token_intersection , token_length , token_length_be ,
  token_length_le , token_maximum_address , token_maximum_be , token_maximum_le ,
  token_md2 , token_md5 , token_memory_initialization_file , token_minimum_address ,
  token_minimum_be , token_minimum_le , token_minus , token_mips_flash_be ,
  token_mips_flash_le , token_mos_tech , token_motorola , token_msbin ,
  token_multiple , token_needham_hex , token_not , token_offset ,
  token_ohio_scientific , token_or , token_output , token_output_word ,
  token_over , token_paren_begin , token_paren_end , token_polynomial ,
  token_postfix , token_ppb , token_ppx , token_prefix ,
  token_ram , token_random , token_random_fill , token_range_padding ,
  token_redundant_bytes , token_repeat_data , token_repeat_string , token_rmd160 ,
  token_round_down , token_round_nearest , token_round_up , token_sequence_warnings_disable ,
  token_sequence_warnings_enable , token_sha1 , token_sha224 , token_sha256 ,
  token_sha384 , token_sha512 , token_signetics , token_spasm_be ,
  token_spasm_le , token_spectrum , token_split , token_stewie ,
  token_stm32_crc_be , token_stm32_crc_le , token_style_dot , token_style_hexadecimal ,
  token_style_hexadecimal_not , token_style_section , token_tektronix , token_tektronix_extended ,
  token_tiger , token_ti_tagged , token_ti_tagged_16 , token_ti_txt ,
  token_trs80 , token_unfill , token_union , token_unsplit ,
  token_vhdl , token_vmem , token_whirlpool , token_wilson ,
  token_within , token_xilinx_coefficient_file , token_xor , token_MAX
}
 
- Public Types inherited from srecord::arglex
enum  {
  token_eoln , token_help , token_license , token_number ,
  token_option , token_page_width , token_page_length , token_stdio ,
  token_string , token_tracing , token_verbose , token_version ,
  token_MAX
}
 The "normal" command line tokens common to all programs. More...
 

Public Member Functions

virtual ~arglex_tool ()
 The destructor. More...
 
 arglex_tool (int argc, char **argv)
 The constructor. More...
 
input::pointer get_input (void)
 The get_input method is used to parse an input specification (filename, file format, filters, everything) from the command line. More...
 
output::pointer get_output (void)
 The get_output method is used to parse an output specification (filename and file format) from the command line. More...
 
unsigned long get_number (const char *caption)
 The get_number method is used to parse a numeric value from the command line. More...
 
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 specified range. More...
 
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 token on the command line. More...
 
interval get_interval (const char *err_msg_caption)
 The get_interval method is used to parse an interval set form the command line. More...
 
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. More...
 
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 one is not available. More...
 
void default_command_line_processing (void)
 The default_command_line_processing method is used to process command line arguments not handled by the derived class. More...
 
defcon_t get_redundant_bytes (void) const
 
defcon_t get_contradictory_bytes (void) const
 
- Public Member Functions inherited from srecord::arglex
virtual ~arglex ()
 The destructor. More...
 
void fatal_error (const char *fmt,...) FORMAT_PRINTF(2
 The fatal_error method may be used to print a fatal error message, and then exit via the usage() method. More...
 
void test_ambiguous (void) const
 The test_ambiguous method is for debugging. More...
 
 arglex ()
 The default constructor. More...
 
 arglex (arglex &)
 The copy constructor. More...
 
 arglex (int argc, char **argv)
 The normal constructor. More...
 
int token_cur () const
 The token_cur method is used to get the type of the current token. More...
 
int token_next (void)
 The token_next method is used to advance to the next command line option and determine what type of token it is. More...
 
int token_first (void)
 The token_first method is used to fetch the fisrt command like token (rather than use the token_next method). More...
 
const std::string & value_string () const
 The value_string method is used to get the string value of the current token. More...
 
long value_number () const
 The value_number method is used to get the numeric value of the current token. More...
 
const char * token_name (int tok) const
 The token_name method is used to turn a token type number into an equivalent string. More...
 
const char * token_name () const
 The token_name method is used to obtain the name of the current token. More...
 
void usage () const
 The usage method is used to print a usage summary. More...
 
void help (const char *=0) const
 The help method is used to print a help message. More...
 
void version () const
 The version method is used to print a version message. More...
 
void license () const
 The license method is used to print the license conditions of the program. More...
 
void bad_argument () const
 The bad_argument method is used to print an error message when the current token is inappropriate, then it calls usage, which exits. More...
 
void usage_tail_set (const char *)
 The usage_tail_set method is used to set the end of the command line to be printed as part of the usage method. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from srecord::arglex
void static bool compare (const char *formal, const char *actual)
 The compare class method is used to compare a command line string with a formal spec of the option, to see if they compare equal. More...
 
static std::string abbreviate (const char *text)
 The abbreviate class method is used to take an option's long name, and turn it into the minimum possible string for that option. More...
 
- Protected Member Functions inherited from srecord::arglex
void table_set (const table_ty *)
 The table_set method is used to append more command line token tables to the list of tables to be scanned. More...
 
void deprecated_option (const std::string &formal_name)
 The deprecated_option method is used to nominate option patterns that are deprected. More...
 

Detailed Description

The srecord::arglex_tool is used to parse command line with srec-specific arguments.

Definition at line 39 of file tool.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
token_a430 
token_adler16_be 
token_adler16_le 
token_adler32_be 
token_adler32_le 
token_and 
token_aomf 
token_ascii_hex 
token_assembler 
token_atmel_generic_be 
token_atmel_generic_le 
token_basic_data 
token_big 
token_binary 
token_bitrev 
token_brecord 
token_byte_swap 
token_c_array 
token_c_compressed 
token_checksum_be_bitnot 
token_checksum_be_negative 
token_checksum_be_positive 
token_checksum_le_bitnot 
token_checksum_le_negative 
token_checksum_le_positive 
token_cl430 
token_constant 
token_constant_be 
token_constant_le 
token_constant_not 
token_contradictory_bytes 
token_cosmac 
token_crc16_augment 
token_crc16_augment_not 
token_crc16_be 
token_crc16_broken 
token_crc16_ccitt 
token_crc16_le 
token_crc16_least_to_most 
token_crc16_most_to_least 
token_crc16_xmodem 
token_crc32_be 
token_crc32_le 
token_crop 
token_dec_binary 
token_eeprom 
token_emon52 
token_exclude 
token_exclusive_length 
token_exclusive_length_be 
token_exclusive_length_le 
token_exclusive_maximum 
token_exclusive_maximum_be 
token_exclusive_maximum_le 
token_exclusive_minimum 
token_exclusive_minimum_be 
token_exclusive_minimum_le 
token_fairchild 
token_fast_load 
token_fill 
token_fletcher16_be 
token_fletcher16_le 
token_fletcher32_be 
token_fletcher32_le 
token_formatted_binary 
token_forth 
token_four_packed_code 
token_gcrypt 
token_generator 
token_guess 
token_haval 
token_hexdump 
token_hp64k 
token_idt 
token_ignore_checksums 
token_lattice_memory_initialization_format 
token_logisim 
token_include 
token_include_not 
token_intel 
token_intel16 
token_intersection 
token_length 
token_length_be 
token_length_le 
token_maximum_address 
token_maximum_be 
token_maximum_le 
token_md2 
token_md5 
token_memory_initialization_file 
token_minimum_address 
token_minimum_be 
token_minimum_le 
token_minus 
token_mips_flash_be 
token_mips_flash_le 
token_mos_tech 
token_motorola 
token_msbin 
token_multiple 
token_needham_hex 
token_not 
token_offset 
token_ohio_scientific 
token_or 
token_output 
token_output_word 
token_over 
token_paren_begin 
token_paren_end 
token_polynomial 
token_postfix 
token_ppb 
token_ppx 
token_prefix 
token_ram 
token_random 
token_random_fill 
token_range_padding 
token_redundant_bytes 
token_repeat_data 
token_repeat_string 
token_rmd160 
token_round_down 
token_round_nearest 
token_round_up 
token_sequence_warnings_disable 
token_sequence_warnings_enable 
token_sha1 
token_sha224 
token_sha256 
token_sha384 
token_sha512 
token_signetics 
token_spasm_be 
token_spasm_le 
token_spectrum 
token_split 
token_stewie 
token_stm32_crc_be 
token_stm32_crc_le 
token_style_dot 
token_style_hexadecimal 
token_style_hexadecimal_not 
token_style_section 
token_tektronix 
token_tektronix_extended 
token_tiger 
token_ti_tagged 
token_ti_tagged_16 
token_ti_txt 
token_trs80 
token_unfill 
token_union 
token_unsplit 
token_vhdl 
token_vmem 
token_whirlpool 
token_wilson 
token_within 
token_xilinx_coefficient_file 
token_xor 
token_MAX 

Definition at line 43 of file tool.h.

Constructor & Destructor Documentation

◆ ~arglex_tool()

virtual srecord::arglex_tool::~arglex_tool ( )
virtual

The destructor.

◆ arglex_tool()

srecord::arglex_tool::arglex_tool ( int  argc,
char **  argv 
)

The constructor.

Pass the argc and argv as given to main; there is not need to change the values at all.

Member Function Documentation

◆ get_input()

input::pointer srecord::arglex_tool::get_input ( void  )

The get_input method is used to parse an input specification (filename, file format, filters, everything) from the command line.

If the parse is unsuccessful (is not present on command line) a fatal error will be issued and the method call will not return.

◆ get_output()

output::pointer srecord::arglex_tool::get_output ( void  )

The get_output method is used to parse an output specification (filename and file format) from the command line.

If the parse is unsuccessful (is not present on command line) a fatal error will be issued and the method call will not return.

◆ get_number() [1/2]

unsigned long srecord::arglex_tool::get_number ( const char *  caption)

The get_number method is used to parse a numeric value from the command line.

◆ get_number() [2/2]

unsigned long srecord::arglex_tool::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 specified range.

Parameters
captionfor the error message, if necessary
minThe minimum acceptable value (inclusive)
maxThe maximum acceptable value (inclusive)

◆ can_get_number()

bool srecord::arglex_tool::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 token on the command line.

◆ get_interval()

interval srecord::arglex_tool::get_interval ( const char *  err_msg_caption)

The get_interval method is used to parse an interval set form the command line.

It consists of as many get_interval_inner()s as possible.

Used by the get_input method to parse the address intervals used by various filters. It is the lowest precedence level, and handsles set union (the implicit operator) and set difference (the - operator).

If the parse is unsuccessful (is not present on command line) a fatal error will be issued and the method call will not return.

◆ get_interval_small()

interval srecord::arglex_tool::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.

It checks that the interval is <=1GB, and errors if it is not, with a –big override. Commonly used to sanity check things like –fill.

◆ get_string()

std::string srecord::arglex_tool::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 one is not available.

Parameters
captionThe text for the error message.

◆ default_command_line_processing()

void srecord::arglex_tool::default_command_line_processing ( void  )
virtual

The default_command_line_processing method is used to process command line arguments not handled by the derived class.

Reimplemented from srecord::arglex.

◆ get_redundant_bytes()

defcon_t srecord::arglex_tool::get_redundant_bytes ( void  ) const
inline

Definition at line 304 of file tool.h.

◆ get_contradictory_bytes()

defcon_t srecord::arglex_tool::get_contradictory_bytes ( void  ) const
inline

Definition at line 305 of file tool.h.


The documentation for this class was generated from the following file: