Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/intercoms/include/G4UIparameter.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /intercoms/include/G4UIparameter.hh (Version 11.3.0) and /intercoms/include/G4UIparameter.hh (Version 11.2.1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // G4UIparameter                                   26 // G4UIparameter
 27 //                                                 27 //
 28 // Class description:                              28 // Class description:
 29 //                                                 29 //
 30 // This class represents a parameter which wil     30 // This class represents a parameter which will be taken by a G4UIcommand
 31 // object. In case a command is defined by con     31 // object. In case a command is defined by constructing G4UIcmdXXX class,
 32 // it automatically creates necessary paramete     32 // it automatically creates necessary parameter objects, thus the user needs
 33 // not to create parameter object(s). In case      33 // not to create parameter object(s). In case the user wants to create a
 34 // command directly instantiated by G4UIcomman     34 // command directly instantiated by G4UIcommand class, he/she must create
 35 // a parameter object(s)                           35 // a parameter object(s)
 36                                                    36 
 37 // Author: Makoto Asai, 1997                       37 // Author: Makoto Asai, 1997
 38 // -------------------------------------------     38 // --------------------------------------------------------------------
 39 #ifndef G4UIparameter_hh                           39 #ifndef G4UIparameter_hh
 40 #define G4UIparameter_hh 1                         40 #define G4UIparameter_hh 1
 41                                                    41 
                                                   >>  42 #include "G4UItokenNum.hh"
 42 #include "globals.hh"                              43 #include "globals.hh"
 43                                                    44 
 44 class G4UIparameter                                45 class G4UIparameter
 45 {                                                  46 {
 46   public:                                          47   public:
 47     // Default constructor                         48     // Default constructor
 48     G4UIparameter() = default;                     49     G4UIparameter() = default;
 49                                                    50 
 50     // Constructors, where "theName" is the na     51     // Constructors, where "theName" is the name of the parameter which will
 51     // be used by the range checking, "theType     52     // be used by the range checking, "theType" is the type of the parameter
 52     // (currently "b" (Boolean), "i" (integer)     53     // (currently "b" (Boolean), "i" (integer), "l" (long int), "d" (double)
 53     // and "s" (string) are supported).            54     // and "s" (string) are supported).
 54     // "theOmittable" is a Boolean flag to set     55     // "theOmittable" is a Boolean flag to set whether
 55     // the user of the command can omit the pa     56     // the user of the command can omit the parameter or not.
 56     // If "theOmittable" is true, the default      57     // If "theOmittable" is true, the default value must be given
 57     G4UIparameter(char theType);                   58     G4UIparameter(char theType);
 58     G4UIparameter(const char* theName, char th     59     G4UIparameter(const char* theName, char theType, G4bool theOmittable);
 59                                                    60 
 60     // Destructor. When a command is destructe     61     // Destructor. When a command is destructed, the delete operator(s) of the
 61     // associated parameter(s) are AUTOMATICAL     62     // associated parameter(s) are AUTOMATICALLY invoked
 62     ~G4UIparameter();                              63     ~G4UIparameter();
 63                                                    64 
 64     G4int CheckNewValue(const char* newValue);     65     G4int CheckNewValue(const char* newValue);
 65     void List();                                   66     void List();
 66                                                    67 
 67     // These methods set the default value of      68     // These methods set the default value of the parameter
 68     inline void SetDefaultValue(const char* th     69     inline void SetDefaultValue(const char* theDefaultValue) { defaultValue = theDefaultValue; }
 69     void SetDefaultValue(G4int theDefaultValue     70     void SetDefaultValue(G4int theDefaultValue);
 70     void SetDefaultValue(G4long theDefaultValu     71     void SetDefaultValue(G4long theDefaultValue);
 71     void SetDefaultValue(G4double theDefaultVa     72     void SetDefaultValue(G4double theDefaultValue);
 72                                                    73 
 73     // This method can be used for a string-ty     74     // This method can be used for a string-type parameter that is
 74     // used to specify a unit. This method is      75     // used to specify a unit. This method is valid only for a
 75     // string-type parameter                       76     // string-type parameter
 76     void SetDefaultUnit(const char* theDefault     77     void SetDefaultUnit(const char* theDefaultUnit);
 77                                                    78 
 78     inline const G4String& GetDefaultValue() c     79     inline const G4String& GetDefaultValue() const { return defaultValue; }
 79     inline char GetParameterType() const { ret     80     inline char GetParameterType() const { return parameterType; }
 80                                                    81 
 81     // Defines the range the parameter can tak     82     // Defines the range the parameter can take.
 82     // The variable name appearing in the rang     83     // The variable name appearing in the range expression must be the
 83     // same as the name of the parameter.          84     // same as the name of the parameter.
 84     // All the C++ syntax of relational operat     85     // All the C++ syntax of relational operators are allowed for the
 85     // range expression                            86     // range expression
 86     inline void SetParameterRange(const char*      87     inline void SetParameterRange(const char* theRange) { rangeExpression = theRange; }
 87                                                    88 
 88     inline const G4String& GetParameterRange()     89     inline const G4String& GetParameterRange() const { return rangeExpression; }
 89                                                    90 
 90     inline void SetParameterName(const char* p     91     inline void SetParameterName(const char* pName) { parameterName = pName; }
 91     inline const G4String& GetParameterName()      92     inline const G4String& GetParameterName() const { return parameterName; }
 92                                                    93 
 93     // This method is meaningful if the type o     94     // This method is meaningful if the type of the parameter is string.
 94     // The candidates listed in the argument m     95     // The candidates listed in the argument must be separated by space(s)
 95     inline void SetParameterCandidates(const c     96     inline void SetParameterCandidates(const char* theString) { parameterCandidate = theString; }
 96                                                    97 
 97     inline const G4String& GetParameterCandida     98     inline const G4String& GetParameterCandidates() const { return parameterCandidate; }
 98                                                    99 
 99     inline void SetOmittable(G4bool om) { omit    100     inline void SetOmittable(G4bool om) { omittable = om; }
100     inline G4bool IsOmittable() const { return    101     inline G4bool IsOmittable() const { return omittable; }
101                                                   102 
102     inline void SetCurrentAsDefault(G4bool val    103     inline void SetCurrentAsDefault(G4bool val) { currentAsDefaultFlag = val; }
103     inline G4bool GetCurrentAsDefault() const     104     inline G4bool GetCurrentAsDefault() const { return currentAsDefaultFlag; }
104                                                   105 
105     // Obsolete methods                           106     // Obsolete methods
106     //                                            107     //
107     inline const G4String& GetParameterGuidanc    108     inline const G4String& GetParameterGuidance() const { return parameterGuidance; }
108     inline void SetGuidance(const char* theGui    109     inline void SetGuidance(const char* theGuidance) { parameterGuidance = theGuidance; }
109                                                   110 
                                                   >> 111   protected:
                                                   >> 112     using yystype = G4UItokenNum::yystype;
                                                   >> 113     using tokenNum = G4UItokenNum::tokenNum;
                                                   >> 114 
110   private:                                        115   private:
                                                   >> 116     // --- the following is used by CheckNewValue() -------
111     G4bool TypeCheck(const char* newValue);       117     G4bool TypeCheck(const char* newValue);
                                                   >> 118     G4bool RangeCheck(const char* newValue);
112     G4bool CandidateCheck(const char* newValue    119     G4bool CandidateCheck(const char* newValue);
                                                   >> 120     //  syntax nodes
                                                   >> 121     yystype Expression();
                                                   >> 122     yystype LogicalORExpression();
                                                   >> 123     yystype LogicalANDExpression();
                                                   >> 124     yystype EqualityExpression();
                                                   >> 125     yystype RelationalExpression();
                                                   >> 126     yystype AdditiveExpression();
                                                   >> 127     yystype MultiplicativeExpression();
                                                   >> 128     yystype UnaryExpression();
                                                   >> 129     yystype PrimaryExpression();
                                                   >> 130     //  semantics routines
                                                   >> 131     G4int Eval2(const yystype& arg1, G4int op, const yystype& arg2);
                                                   >> 132     //  utility
                                                   >> 133     tokenNum Yylex();  // returns next token
                                                   >> 134     G4int G4UIpGetc();  // read one char from rangeBuf
                                                   >> 135     G4int G4UIpUngetc(G4int c);  // put back
                                                   >> 136     G4int Backslash(G4int c);
                                                   >> 137     G4int Follow(G4int expect, G4int ifyes, G4int ifno);
                                                   >> 138 
                                                   >> 139     // data -----------------------------------------------------------
113                                                   140 
114   private:                                     << 
115     G4String parameterName;                       141     G4String parameterName;
116     G4String parameterGuidance;                   142     G4String parameterGuidance;
117     G4String defaultValue;                        143     G4String defaultValue;
118     G4String rangeExpression;                     144     G4String rangeExpression;
119     G4String parameterCandidate;                  145     G4String parameterCandidate;
120     char parameterType = '\0';                    146     char parameterType = '\0';
121     G4bool omittable = false;                     147     G4bool omittable = false;
122     G4bool currentAsDefaultFlag = false;          148     G4bool currentAsDefaultFlag = false;
                                                   >> 149 
                                                   >> 150     //------------ CheckNewValue() related data members ---------------
                                                   >> 151     G4int bp = 0;  // current index in rangeExpression
                                                   >> 152     tokenNum token = G4UItokenNum::NONE;
                                                   >> 153     yystype yylval;
                                                   >> 154     yystype newVal;
                                                   >> 155     G4int paramERR = 0;
123 };                                                156 };
124                                                   157 
125 #endif                                            158 #endif
126                                                   159