FLAMCLEP-Reference
Command Line Executor/Parser Source Reference
CLPTST.c File Reference
#include <time.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include "CLEPUTL.h"
#include "FLAMCLP.h"
#include "CLPMAC.h"
Include dependency graph for CLPTST.c:

Go to the source code of this file.

Macros

#define DEFINE_STRUCT
 
#define NUMTEST_TABLE
 
#define FLTTEST_TABLE
 
#define ALLTYPES_TABLE
 
#define OVERLAY_TABLE
 
#define TEST_TABLE
 
#define LOG_TABLE
 
#define MAIN_TABLE
 
#define STRUCT_NAME   TsNumTypes
 
#define STRUCT_NAME   TsFltTypes
 
#define STRUCT_NAME   TsAllTypes
 
#define STRUCT_NAME   TuOverlay
 
#define STRUCT_NAME   TsTst
 
#define STRUCT_NAME   TsLog
 
#define STRUCT_NAME   TsMain
 

Typedefs

typedef C08 string5[5]
 
typedef struct NumTypes TsNumTypes
 
typedef struct FltTypes TsFltTypes
 
typedef struct AllTypes TsAllTypes
 
typedef union Overlay TuOverlay
 
typedef struct Tst TsTst
 
typedef struct Log TsLog
 
typedef struct Main TsMain
 

Functions

 CLPCONTAB_OPN (asSelect)
 
int main (int argc, char *argv[])
 

Variables

TsClpArgument asClpNumTypes []
 
TsClpArgument asClpFltTypes []
 
TsClpArgument asClpAllTypes []
 
TsClpArgument asClpOverlay []
 
TsClpArgument asClpTst []
 
TsClpArgument asClpLog []
 
TsClpArgument asMainArgTab []
 

Detailed Description

LIMES Command Line Parser (FLAMCLP) in ANSI-C

Author
Falk Reichbott
Date
27.02.2013

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

Definition in file CLPTST.c.

Macro Definition Documentation

◆ ALLTYPES_TABLE

#define ALLTYPES_TABLE
Value:
CLPARGTAB_SKALAR ("SWT" , siSwitch, I08, 1, 1, CLPTYP_SWITCH, CLPFLG_NON,0xF, NULL , "0x00", NULL, "Switch to set 0xf") \
CLPARGTAB_SKALAR ("NUMTYPES", stNumTypes, TsNumTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 1, asClpNumTypes, NULL, NULL, "All kind of numbers") \
CLPARGTAB_SKALAR ("FLTTYPES", stFltTypes, TsFltTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 2, asClpFltTypes, NULL, NULL, "All kind of floats") \
CLPARGTAB_SKALAR ("STR09" , siStrLen, I16, 0, 1, CLPTYP_NUMBER, CLPFLG_SLN, 3, NULL , NULL, NULL, "16 bit integer for strlen") \
CLPARGTAB_STRING ("STR09" , acStr, 9, 0, 1, CLPTYP_STRING, CLPFLG_NON, 4, asSelect , NULL, NULL, "String with 8 chars") \
CLPARGTAB_SKALAR ("BIN32" , uiBinLen, U32, 0, 1, CLPTYP_NUMBER, CLPFLG_TLN, 5, NULL , NULL, NULL, "32 bit integer for binlen") \
CLPARGTAB_STRING ("BIN32" , acBin, 32, 0, 1, CLPTYP_STRING, CLPFLG_BIN, 6, NULL , NULL, NULL, "Binary with 32 byte") \
CLPARGTAB_SKALAR ("NUM4L" , siNumCnt, I32, 0, 1, CLPTYP_NUMBER, CLPFLG_CNT, 7, NULL , NULL, NULL, "32 bit integer for numcnt") \
CLPARGTAB_ARRAY ("NUM4L" , aiNumLst, I32, 0, 4, CLPTYP_NUMBER, CLPFLG_NON, 8, NULL , NULL, NULL, "Number array with 4 integer") \
CLPARGTAB_SKALAR ("STR45" , siStrCnt, U16, 0, 1, CLPTYP_NUMBER, CLPFLG_CNT, 9, NULL , NULL, NULL, "16 bit integer for strcnt") \
CLPARGTAB_ARRAY ("STR45" , acStrLst, string5, 0, 4, CLPTYP_STRING, CLPFLG_FIX, 10, NULL , NULL, NULL, "String with 8 chars") \
CLPARGTAB_SKALAR ("BIN8L" , siBinCnt, I08, 0, 1, CLPTYP_NUMBER, CLPFLG_CNT, 11, NULL , NULL, NULL, "8 bit integer for bincnt") \
CLPARGTAB_ARRAY ("BIN8L" , aiBinLen, I08, 0, 8, CLPTYP_NUMBER, CLPFLG_ELN, 12, NULL , NULL, NULL, "Length array for 8 binaries") \
CLPARGTAB_STRING ("BIN8L" , acBinLst, 64, 0, 8, CLPTYP_STRING, CLPFLG_BIN, 13, NULL , NULL, NULL, "Binary with 64 bytes") \
CLPARGTAB_CLS

Definition at line 62 of file CLPTST.c.

◆ DEFINE_STRUCT

#define DEFINE_STRUCT

Definition at line 38 of file CLPTST.c.

◆ FLTTEST_TABLE

#define FLTTEST_TABLE
Value:
CLPARGTAB_SKALAR("FLT32", flFlt32, F32, 0, 1, CLPTYP_FLOATN, CLPFLG_NON, 1, NULL , NULL/*"123.456"*/, NULL, "Float with 32 bit") \
CLPARGTAB_SKALAR("FLT64", flFlt64, F64, 0, 1, CLPTYP_FLOATN, CLPFLG_SEL, 2, asSelect, NULL/*"PI"*/ , NULL, "Float with 64 bit") \
CLPARGTAB_CLS

Definition at line 54 of file CLPTST.c.

◆ LOG_TABLE

#define LOG_TABLE
Value:
CLPARGTAB_SKALAR ("DUMMY", uiDummy, I32, 0, 1, CLPTYP_NUMBER, CLPFLG_NON, 1, NULL, NULL, NULL, "Just a dummy") \
CLPARGTAB_CLS

Definition at line 106 of file CLPTST.c.

◆ MAIN_TABLE

#define MAIN_TABLE
Value:
CLPARGTAB_SKALAR("INPUT" , stInp, TsTst, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 1, asClpTst, NULL, NULL, "Struture to define inbound parameter") \
CLPARGTAB_SKALAR("OUTPUT", stOut, TsTst, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 2, asClpTst, NULL, NULL, "Struture to define outbound parameter") \
CLPARGTAB_SKALAR("LOG" , stLog, TsLog, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 3, asClpLog, NULL, NULL, "Struture to define log parameter") \
CLPARGTAB_CLS

Definition at line 113 of file CLPTST.c.

◆ NUMTEST_TABLE

#define NUMTEST_TABLE
Value:
CLPARGTAB_SKALAR("NUM08", uiNum08, U08, 1, 1, CLPTYP_NUMBER, CLPFLG_NON, 1, NULL , "23" , NULL, "Number with 8 bit" ) \
CLPARGTAB_SKALAR("NUM16", siNum16, I16, 0, 1, CLPTYP_NUMBER, CLPFLG_SEL, 2, asSelect, "NUM3", NULL, "Number with 16 bit") \
CLPARGTAB_SKALAR("NUM32", uiNum32, U32, 1, 1, CLPTYP_NUMBER, CLPFLG_NON, 3, NULL , "" , NULL, "Number with 32 bit") \
CLPARGTAB_ALIAS( "NUGO6", "NUM32") \
CLPARGTAB_ALIAS( "HUGO2", "NUM32") \
CLPARGTAB_SKALAR("NUM64", siNum64, I64, 0, 1, CLPTYP_NUMBER, CLPFLG_NON, 4, asSelect, "NUM2", NULL, "Number with 64 bit") \
CLPARGTAB_CLS

Definition at line 41 of file CLPTST.c.

◆ OVERLAY_TABLE

#define OVERLAY_TABLE
Value:
CLPARGTAB_SKALAR ("SWT", siSwt, I16, 0, 1, CLPTYP_SWITCH, CLPFLG_NON, 1, NULL, NULL, NULL, "Switch to set 0xf") \
CLPARGTAB_STRING ("STR", acStr, 33, 0, 1, CLPTYP_STRING, CLPFLG_NON, 2, NULL, NULL/*"'FALK'"*/, NULL, "String with 33 chars") \
CLPARGTAB_SKALAR ("ALL", stAll, TsAllTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 3, asClpAllTypes, NULL, NULL, "All kind of types (overlay)") \
CLPARGTAB_SKALAR ("NUM", stNum, TsNumTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 4, asClpNumTypes, NULL, NULL, "All kind of numbers (overlay)") \
CLPARGTAB_SKALAR ("FLT", stFlt, TsFltTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 5, asClpFltTypes, NULL/*"FLT"*/, NULL, "All kind of floats (overlay)") \
CLPARGTAB_CLS

Definition at line 82 of file CLPTST.c.

◆ STRUCT_NAME [1/7]

#define STRUCT_NAME   TsNumTypes

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [2/7]

#define STRUCT_NAME   TsFltTypes

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [3/7]

#define STRUCT_NAME   TsAllTypes

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [4/7]

#define STRUCT_NAME   TuOverlay

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [5/7]

#define STRUCT_NAME   TsTst

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [6/7]

#define STRUCT_NAME   TsLog

Definition at line 179 of file CLPTST.c.

◆ STRUCT_NAME [7/7]

#define STRUCT_NAME   TsMain

Definition at line 179 of file CLPTST.c.

◆ TEST_TABLE

#define TEST_TABLE
Value:
CLPARGTAB_SKALAR ("NUM" , stNum, TsNumTypes, 0, 1, CLPTYP_OBJECT, CLPFLG_NON, 1, asClpNumTypes, NULL, NULL, "All kind of numbers (tst)") \
CLPARGTAB_SKALAR ("NUM" , siNumOid, I32, 0, 1, CLPTYP_NUMBER, CLPFLG_OID, 2, NULL , NULL, NULL, "32 bit integer for oidnum") \
CLPARGTAB_SKALAR ("ALL3L", siAllCnt, I32, 0, 1, CLPTYP_NUMBER, CLPFLG_CNT, 3, NULL , NULL, NULL, "32 bit integer for allcnt") \
CLPARGTAB_ARRAY ("ALL3L", asAll, TsAllTypes, 0, 3, CLPTYP_OBJECT, CLPFLG_NON, 4, asClpAllTypes, NULL, NULL, "All kind of types (tst)") \
CLPARGTAB_SKALAR ("OVL4L", siOvlCnt, I32, 0, 1, CLPTYP_NUMBER, CLPFLG_CNT, 5, NULL , NULL, NULL, "32 bit integer for ovlcnt") \
CLPARGTAB_ARRAY ("OVL4L", aiOvlMod, I32, 0, 4, CLPTYP_NUMBER, CLPFLG_OID, 6, NULL , NULL, NULL, "List for Oid's") \
CLPARGTAB_ARRAY ("OVL4L", auOvl, TuOverlay, 0, 4, CLPTYP_OVRLAY, CLPFLG_NON, 7, asClpOverlay , NULL/*"STR FLT ALL STR"*/, NULL, "Overlay for test") \
CLPARGTAB_CLS

Definition at line 93 of file CLPTST.c.

Typedef Documentation

◆ string5

typedef C08 string5[5]

Definition at line 36 of file CLPTST.c.

◆ TsAllTypes

typedef struct AllTypes TsAllTypes

◆ TsFltTypes

typedef struct FltTypes TsFltTypes

◆ TsLog

typedef struct Log TsLog

◆ TsMain

typedef struct Main TsMain

◆ TsNumTypes

typedef struct NumTypes TsNumTypes

◆ TsTst

typedef struct Tst TsTst

◆ TuOverlay

typedef union Overlay TuOverlay

Function Documentation

◆ CLPCONTAB_OPN()

CLPCONTAB_OPN ( asSelect  )

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 295 of file CLPTST.c.

Variable Documentation

◆ asClpAllTypes

TsClpArgument asClpAllTypes[]
Initial value:

Definition at line 156 of file CLPTST.c.

◆ asClpFltTypes

TsClpArgument asClpFltTypes[]
Initial value:

Definition at line 150 of file CLPTST.c.

◆ asClpLog

TsClpArgument asClpLog[]
Initial value:
= {
}

Definition at line 174 of file CLPTST.c.

◆ asClpNumTypes

TsClpArgument asClpNumTypes[]
Initial value:

Definition at line 144 of file CLPTST.c.

◆ asClpOverlay

TsClpArgument asClpOverlay[]
Initial value:

Definition at line 162 of file CLPTST.c.

◆ asClpTst

TsClpArgument asClpTst[]
Initial value:
= {
}

Definition at line 168 of file CLPTST.c.

◆ asMainArgTab

TsClpArgument asMainArgTab[]
Initial value:
= {
}

Definition at line 180 of file CLPTST.c.

CLPFLG_NON
#define CLPFLG_NON
To define no special flags.
Definition: CLPDEF.h:188
asClpTst
TsClpArgument asClpTst[]
Definition: CLPTST.c:168
LOG_TABLE
#define LOG_TABLE
Definition: CLPTST.c:106
CLPARGTAB_SKALAR
#define CLPARGTAB_SKALAR(kyw, nam, typ, min, max, atyp, flg, oid, tab, dft, man, hlp)
Defines a scalar (single value) with the command line keyword kyw and the member name nam.
Definition: CLPMAC.h:69
CLPFLG_ELN
#define CLPFLG_ELN
This link will be filled by the calculated length of an element (fixed types == data size,...
Definition: CLPDEF.h:201
TsNumTypes
struct NumTypes TsNumTypes
asClpFltTypes
TsClpArgument asClpFltTypes[]
Definition: CLPTST.c:150
CLPFLG_TLN
#define CLPFLG_TLN
This link will be filled by the calculated total length for the argument (sum of all element lengths)...
Definition: CLPDEF.h:203
NUMTEST_TABLE
#define NUMTEST_TABLE
Definition: CLPTST.c:41
string5
C08 string5[5]
Definition: CLPTST.c:36
asClpAllTypes
TsClpArgument asClpAllTypes[]
Definition: CLPTST.c:156
MAIN_TABLE
#define MAIN_TABLE
Definition: CLPTST.c:113
asClpLog
TsClpArgument asClpLog[]
Definition: CLPTST.c:174
asClpOverlay
TsClpArgument asClpOverlay[]
Definition: CLPTST.c:162
TsLog
struct Log TsLog
CLPFLG_BIN
#define CLPFLG_BIN
This argument can contain binary data without null termination (length must be known or determined wi...
Definition: CLPDEF.h:195
CLPTYP_STRING
#define CLPTYP_STRING
String literal (binary (HEX, ASCII, EBCDIC, CHARS) or null-terminated (default)).
Definition: CLPDEF.h:156
CLPTYP_SWITCH
#define CLPTYP_SWITCH
Switch (single keyword representing a number (OID)).
Definition: CLPDEF.h:153
CLPTYP_OVRLAY
#define CLPTYP_OVRLAY
Overlay (KEYWORD.KEYWORD...) contains one of its list as in a C union.
Definition: CLPDEF.h:158
TuOverlay
union Overlay TuOverlay
TsFltTypes
struct FltTypes TsFltTypes
FLTTEST_TABLE
#define FLTTEST_TABLE
Definition: CLPTST.c:54
CLPFLG_CNT
#define CLPFLG_CNT
This link will be filled by the calculated amount of elements (useful for arrays).
Definition: CLPDEF.h:197
OVERLAY_TABLE
#define OVERLAY_TABLE
Definition: CLPTST.c:82
CLPFLG_OID
#define CLPFLG_OID
This link will be filled by the object identifier (OID) of the chosen argument (useful for overlays).
Definition: CLPDEF.h:198
asClpNumTypes
TsClpArgument asClpNumTypes[]
Definition: CLPTST.c:144
TsTst
struct Tst TsTst
TsAllTypes
struct AllTypes TsAllTypes
CLPTYP_FLOATN
#define CLPTYP_FLOATN
Floating point number (32 or 64 bit).
Definition: CLPDEF.h:155
CLPFLG_SEL
#define CLPFLG_SEL
If set only the predefined constants over the corresponding key words can be selected (useful to defi...
Definition: CLPDEF.h:193
CLPTYP_OBJECT
#define CLPTYP_OBJECT
Object (KEYWORD(parameter_list)) can contain arbitrary list of other types.
Definition: CLPDEF.h:157
ALLTYPES_TABLE
#define ALLTYPES_TABLE
Definition: CLPTST.c:62
TEST_TABLE
#define TEST_TABLE
Definition: CLPTST.c:93
CLPFLG_FIX
#define CLPFLG_FIX
This argument has a fixed length (only useful for strings if a typedef defines a fixed length per ele...
Definition: CLPDEF.h:194
CLPFLG_SLN
#define CLPFLG_SLN
This link will be filled by the calculated string length for an element (only for null-terminated str...
Definition: CLPDEF.h:202
CLPTYP_NUMBER
#define CLPTYP_NUMBER
Signed or unsigned integer number (8, 16, 32 or 64 bit).
Definition: CLPDEF.h:154