The Command line parsing module uses a synthesizer to construct parse tables. The parse table synthesis system is also used to construct the command line options.
This document provides only an overview of the principle features of the parser system. The current sources and intermidate generated files provide more information.
SYSTEM "Software Product License" "CERT"
FIELD Mic_Head "MIC-Head"
PARAMETER mic_head_alg String
PARAMETER mic_head_digest_alg String
PARAMETER mic_head_p1 String
FIELD Issuer "Issuer"
PARAMETER issuer String
FIELD Authorization "Authorization"
PARAMETER authorization String
FIELD Authorized_User "Authorized-User"
PARAMETER Authorized_User List [String]
FIELD Product_Name "Product-Name"
PARAMETER Product_Name String
FIELD Producer "Producer"
PARAMETER Producer String
FIELD Units "Units"
PARAMETER Units Integer
FIELD Version "Version"
PARAMETER Version String
FIELD Start_Date "Start-Date"
PARAMETER Start_Date DateTime
SYNTAX FREE
FIELD Expiration_Date "Expiration-Date"
PARAMETER Expiration_Date DateTime
FIELD Availability "Availability"
PARAMETER Availability String
FIELD Options "Options"
PARAMETER Options List [String]
FIELD Hardware_ID "Hardware-ID"
PARAMETER Hardware_ID String
FIELD Mic_Body "MIC-Body"
PARAMETER mic_body_alg String
PARAMETER mic_body_digest_alg String
PARAMETER mic_body_p1 String
INTERFACE LICENSE
ONE Issuer
ONE Authorization
MANY Authorized_User
ONE Product_Name
ONE Producer
ONE Units
ONE Version
ONE Start_Date
ONE Expiration_Date
ONE Availability
MANY Options
ONE Hardware_ID
ONE Mic_Head
typedef struct _LICENSE {
String issuer;
String authorization;
List Authorized_User;
String Product_Name;
String Producer;
Integer Units;
String Version;
DateTime Start_Date;
DateTime Expriy_Date;
String Availability;
List Options;
String Hardware_ID;
String mic_head_alg;
String mic_head_digest_alg;
String mic_head_p1;
} LICENSE;
The following routines provide the main API for the handling of licenses. Auxilliary low level routines are also provided for special cases handling.