My Project
Loading...
Searching...
No Matches
feOpt.h
Go to the documentation of this file.
1#ifndef FEOPTS_H
2#define FEOPTS_H
3/****************************************
4* Computer Algebra System SINGULAR *
5****************************************/
6/*
7* ABSTRACT: Declarations for working with Options
8*/
9
10#include "resources/fegetopt.h"
11
12#include "Singular/feOptTab.h"
13
14extern const char SHORT_OPTS_STRING[];
15
16/* specifies format of options */
18
19/* provides feOptIndex enum type for fast accesses to feOptSpec */
20#if ! defined(GENERATE_DEPEND)
21
22# ifdef ESINGULAR
23# include "Singular/feOptES.inc"
24# elif defined(TSINGULAR)
25# include "Singular/feOptTS.inc"
26# else
27# include "Singular/feOpt.inc"
28# endif
29
30#else
31typedef enum {FE_OPT_UNDEF} feOptIndex;
32#endif
33
34
35void feOptHelp(const char* name);
36void feOptDumpVersionTuple(void);
37
38#ifdef __cplusplus
39
40static inline void* feOptValue(feOptIndex opt)
41{
42 return feOptSpec[(int)opt].value;
43}
44inline int feOptValue(feOptIndex opt, char** val)
45{
46 if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type == feOptString)
47 {
48 *val = (char*) feOptSpec[(int)opt].value;
49 return TRUE;
50 }
51 *val = NULL;
52 return FALSE;
53}
54inline int feOptValue(feOptIndex opt, int* val)
55{
56 if (opt != FE_OPT_UNDEF && feOptSpec[(int)opt].type != feOptString)
57 {
58 *val = (int) ((long)(feOptSpec[(int)opt].value));
59 return TRUE;
60 }
61 *val = 0;
62 return FALSE;
63}
64
65// maps name to otions
66feOptIndex feGetOptIndex(const char* name);
68
69// Setting option values:
70// Return: NULL -- everything ok
71// "error-string" on error
72
73// opt->type must be feOptInt or feOptBool
74const char* feSetOptValue(feOptIndex opt, int optarg);
75// for opt->type != feOptString, optarg is converted
76// to an int
77const char* feSetOptValue(feOptIndex opt, char* optarg);
78
79void fePrintOptValues();
80
81#endif /* __cplusplus */
82
83#endif /* FEOPTS_H */
#define TRUE
Definition: auxiliary.h:100
#define FALSE
Definition: auxiliary.h:96
feOptIndex
Definition: feOptGen.h:15
@ FE_OPT_UNDEF
Definition: feOptGen.h:15
static void * feOptValue(feOptIndex opt)
Definition: feOpt.h:40
const char * feSetOptValue(feOptIndex opt, int optarg)
Definition: feOpt.cc:188
void fePrintOptValues()
Definition: feOpt.cc:337
const char SHORT_OPTS_STRING[]
Definition: feOpt.cc:29
feOptIndex feGetOptIndex(const char *name)
Definition: feOpt.cc:104
EXTERN_VAR struct fe_option feOptSpec[]
Definition: feOpt.h:17
void feOptDumpVersionTuple(void)
Definition: feOpt.cc:423
void feOptHelp(const char *name)
Definition: feOpt.cc:372
@ feOptString
Definition: fegetopt.h:77
int val
Definition: fegetopt.h:88
feOptType type
Definition: fegetopt.h:92
void * value
Definition: fegetopt.h:93
#define EXTERN_VAR
Definition: globaldefs.h:6
#define NULL
Definition: omList.c:12
int name
New type name for int.
Definition: templateForC.h:21