GRASS GIS 7 Programmer's Manual
7.0.3(2016)-r00000
|
GIS Library - Argument parsing functions. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <grass/gis.h>
#include <grass/spawn.h>
#include <grass/glocale.h>
#include "parser_local_proto.h"
Go to the source code of this file.
Macros | |
#define | KEYLENGTH 64 |
#define | MAX_MATCHES 50 |
Enumerations | |
enum | opt_error { BAD_SYNTAX = 1, OUT_OF_RANGE = 2, MISSING_VALUE = 3, AMBIGUOUS = 4, REPLACED = 5 } |
Functions | |
void | G_disable_interactive (void) |
Disables the ability of the parser to operate interactively. More... | |
struct Flag * | G_define_flag (void) |
Initializes a Flag struct. More... | |
struct Option * | G_define_option (void) |
Initializes an Option struct. More... | |
struct GModule * | G_define_module (void) |
Initializes a new module. More... | |
int | G_parser (int argc, char **argv) |
Parse command line. More... | |
char * | G_recreate_command (void) |
Creates command to run non-interactive. More... | |
void | G_add_keyword (const char *keyword) |
Add keyword to the list. More... | |
void | G_set_keywords (const char *keywords) |
Set keywords from the string. More... | |
int | G__uses_new_gisprompt (void) |
void | G__print_keywords (FILE *fd, void(*format)(FILE *, const char *)) |
Print list of keywords (internal use only) More... | |
int | G_get_overwrite () |
Get overwrite value. More... | |
char * | G_option_to_separator (const struct Option *option) |
Get separator string from the option. More... | |
FILE * | G_open_option_file (const struct Option *option) |
Get an input/output file pointer from the option. If the file name is omitted or '-', it returns either stdin or stdout based on the gisprompt. More... | |
void | G_close_option_file (FILE *fp) |
Close an input/output file returned by G_open_option_file(). If the file pointer is stdin, stdout, or stderr, nothing happens. More... | |
Variables | |
struct state | state |
struct state * | st = &state |
GIS Library - Argument parsing functions.
Parses the command line provided through argc and argv. Example: Assume the previous calls:
G_parser() will respond to the following command lines as described:
command (No command line arguments)
Parser enters interactive mode.
command map=map.name
Parser will accept this line. Map will be set to "map.name", the 'a' and 'b' flags will remain off and the num option will be set to the default of 5.
command -ab map=map.name num=9 command -a -b map=map.name num=9 command -ab map.name num=9 command map.name num=9 -ab command num=9 -a map=map.name -b
These are all treated as acceptable and identical. Both flags are set to on, the map option is "map.name" and the num option is "9". Note that the "map=" may be omitted from the command line if it is part of the first option (flags do not count).
command num=12
This command line is in error in two ways. The user will be told that the "map" option is required and also that the number 12 is out of range. The acceptable range (or list) will be printed.
(C) 2001-2014 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file parser.c.
#define KEYLENGTH 64 |
Definition at line 95 of file parser.c.
Referenced by G__uses_new_gisprompt().
enum opt_error |
void G__print_keywords | ( | FILE * | fd, |
void(*)(FILE *, const char *) | format | ||
) |
Print list of keywords (internal use only)
If format function is NULL than list of keywords is printed comma-separated.
[out] | fd | file where to print |
format | pointer to print function |
Definition at line 815 of file parser.c.
References st.
Referenced by G__script(), G__usage_html(), G__usage_rest(), and G__usage_xml().
int G__uses_new_gisprompt | ( | void | ) |
Definition at line 779 of file parser.c.
Referenced by G__usage_html(), G__usage_rest(), G__usage_xml(), and G__wps_print_process_description().
void G_add_keyword | ( | const char * | keyword | ) |
void G_close_option_file | ( | FILE * | fp | ) |
Close an input/output file returned by G_open_option_file(). If the file pointer is stdin, stdout, or stderr, nothing happens.
file | pointer |
struct Flag* G_define_flag | ( | void | ) |
Initializes a Flag struct.
Allocates memory for the Flag structure and returns a pointer to this memory.
Flags are always represented by single letters. A user "turns them on" at the command line using a minus sign followed by the character representing the flag.
Definition at line 154 of file parser.c.
References G_zero(), NULL, and st.
Referenced by G_define_standard_flag().
struct GModule* G_define_module | ( | void | ) |
struct Option* G_define_option | ( | void | ) |
Initializes an Option struct.
Allocates memory for the Option structure and returns a pointer to this memory.
Options are provided by user on command line using the standard format: key=value. Options identified as REQUIRED must be specified by user on command line. The option string can either specify a range of values (e.g. "10-100") or a list of acceptable values (e.g. "red,orange,yellow"). Unless the option string is NULL, user provided input will be evaluated agaist this string.
Definition at line 208 of file parser.c.
Referenced by G_define_standard_option(), M_define_option(), and N_define_standard_option().
void G_disable_interactive | ( | void | ) |
Disables the ability of the parser to operate interactively.
When a user calls a command with no arguments on the command line, the parser will enter its own standardized interactive session in which all flags and options are presented to the user for input. A call to G_disable_interactive() disables the parser's interactive prompting.
Definition at line 137 of file parser.c.
References st.
int G_get_overwrite | ( | ) |
FILE* G_open_option_file | ( | const struct Option * | option | ) |
Get an input/output file pointer from the option. If the file name is omitted or '-', it returns either stdin or stdout based on the gisprompt.
Calls G_fatal_error() on error. File pointer can be later closed by G_close_option_file().
option | pointer to a file option |
Definition at line 1684 of file parser.c.
References G_fatal_error(), and NULL.
char* G_option_to_separator | ( | const struct Option * | option | ) |
Get separator string from the option.
Calls G_fatal_error() on error. Allocated string can be later freed by G_free().
option | pointer to separator option |
Definition at line 1622 of file parser.c.
References G_debug(), G_fatal_error(), G_store(), and NULL.
int G_parser | ( | int | argc, |
char ** | argv | ||
) |
Parse command line.
The command line parameters argv and the number of parameters argc from the main() routine are passed directly to G_parser(). G_parser() accepts the command line input entered by the user, and parses this input according to the input options and/or flags that were defined by the programmer.
Note: The only functions which can legitimately be called before G_parser() are:
The usual order a module calls functions is:
argc | number of arguments |
argv | argument list |
Definition at line 318 of file parser.c.
References err(), FALSE, G__check_option_rules(), G__has_required_rule(), G__script(), G__usage_html(), G__usage_rest(), G__usage_text(), G__usage_xml(), G__wps_print_process_description(), G_asprintf(), G_basename(), G_chop(), G_fatal_error(), G_free_tokens(), G_is_dirsep(), G_store(), G_tokenize(), G_usage(), G_verbose(), G_verbose_max(), G_verbose_min(), G_verbose_std(), G_warning(), NULL, st, and TRUE.
char* G_recreate_command | ( | void | ) |
Creates command to run non-interactive.
Creates a command-line that runs the current command completely non-interactive.
Definition at line 622 of file parser.c.
References G_debug(), G_program_name(), G_verbose_max(), G_verbose_std(), and st.
void G_set_keywords | ( | const char * | keywords | ) |
Set keywords from the string.
keywords | keywords separated by commas |
Definition at line 771 of file parser.c.
References G_number_of_tokens(), G_tokenize(), and st.
Definition at line 101 of file parser.c.
Referenced by G__print_keywords(), G__script(), G__usage_html(), G__usage_rest(), G__usage_xml(), G__uses_new_gisprompt(), G__wps_print_process_description(), G_add_keyword(), G_define_flag(), G_define_module(), G_define_option(), G_disable_interactive(), G_get_overwrite(), G_parser(), G_recreate_command(), G_set_keywords(), and gsd_put_legend().