From 9397abf23b025e0bfb3f7fccb5a03aa4f3f2c3f3 Mon Sep 17 00:00:00 2001 From: Jochem Snuverink <jochem.snuverink@psi.ch> Date: Wed, 5 Aug 2020 09:59:24 +0200 Subject: [PATCH] don't execute relevant code in assert; use PAssert; add copyright header --- src/Lines/LineTemplate.cpp | 46 ++++++++++++++++++---------------- src/Lines/LineTemplate.h | 46 ++++++++++++++++------------------ src/Lines/SequenceTemplate.cpp | 41 ++++++++++++++++++------------ src/Lines/SequenceTemplate.h | 46 ++++++++++++++++------------------ src/OpalParser/MacroCmd.cpp | 42 ++++++++++++++++++------------- src/OpalParser/MacroCmd.h | 42 ++++++++++++++++--------------- 6 files changed, 140 insertions(+), 123 deletions(-) diff --git a/src/Lines/LineTemplate.cpp b/src/Lines/LineTemplate.cpp index 731eaf3bd..c26dce38a 100644 --- a/src/Lines/LineTemplate.cpp +++ b/src/Lines/LineTemplate.cpp @@ -1,31 +1,35 @@ -// ------------------------------------------------------------------------ -// $RCSfile: LineTemplate.cpp,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.2 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: LineTemplate -// The class for storage of OPAL beam lines with arguments. +// Class LineTemplate +// +// An ``archetype'' for a OPAL beam line with arguments. +// The model is stored in form of a MacroStream. A call to the macro line +// is expanded by first replacing the arguments, and then parsing the +// resulting stream as a LINE definition. +// +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland // -// ------------------------------------------------------------------------ +// All rights reserved // -// $Date: 2000/03/29 10:41:39 $ -// $Author: opal $ +// This file is part of OPAL. +// +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. // -// ------------------------------------------------------------------------ #include "Lines/LineTemplate.h" + +#include "Utility/PAssert.h" + #include "AbstractObjects/OpalData.h" #include "Lines/Line.h" #include "Parser/SimpleStatement.h" #include "Utilities/ParseError.h" #include <vector> -#include <cassert> - -// Class LineTemplate -// ------------------------------------------------------------------------ LineTemplate::LineTemplate(): Macro(0, "LINE", @@ -110,7 +114,8 @@ Object *LineTemplate::makeTemplate(const std::string &, TokenStream &, Statement void LineTemplate::parseTemplate(TokenStream &, Statement &statement) { parseFormals(statement); - assert(statement.keyword("LINE")); + bool isLine = statement.keyword("LINE"); + PAssert(isLine); // Store the template list. Token token = statement.getCurrent(); @@ -128,8 +133,7 @@ void LineTemplate::parseTemplate(TokenStream &, Statement &statement) { body.append(token); } } else { - throw ParseError("Line::makeTemplate()", + throw ParseError("LineTemplate::parseTemplate()", "Equals sign '=' expected."); } - -} +} \ No newline at end of file diff --git a/src/Lines/LineTemplate.h b/src/Lines/LineTemplate.h index 51e978a86..237cef2a2 100644 --- a/src/Lines/LineTemplate.h +++ b/src/Lines/LineTemplate.h @@ -1,22 +1,28 @@ -#ifndef OPAL_LineTemplate_HH -#define OPAL_LineTemplate_HH - -// ------------------------------------------------------------------------ -// $RCSfile: LineTemplate.h,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.2 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: LineTemplate +// Class LineTemplate +// +// An ``archetype'' for a OPAL beam line with arguments. +// The model is stored in form of a MacroStream. A call to the macro line +// is expanded by first replacing the arguments, and then parsing the +// resulting stream as a LINE definition. +// +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland +// +// All rights reserved // -// ------------------------------------------------------------------------ +// This file is part of OPAL. // -// $Date: 2000/03/29 10:41:40 $ -// $Author: opal $ +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// ------------------------------------------------------------------------ +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. +// + +#ifndef OPAL_LineTemplate_HH +#define OPAL_LineTemplate_HH #include "OpalParser/Macro.h" #include "OpalParser/MacroStream.h" @@ -25,14 +31,6 @@ class Line; class Statement; class TokenStream; - -// Class LineTemplate -// ------------------------------------------------------------------------ -/// An ``archetype'' for a OPAL beam line with arguments. -// The model is stored in form of a MacroStream. A call to the macro line -// is expanded by first replacing the arguments, and then parsing the -// resulting stream as a LINE definition. - class LineTemplate: public Macro { friend class Line; @@ -73,4 +71,4 @@ private: MacroStream body; }; -#endif // OPAL_LineTemplate_HH +#endif // OPAL_LineTemplate_HH \ No newline at end of file diff --git a/src/Lines/SequenceTemplate.cpp b/src/Lines/SequenceTemplate.cpp index ec784e886..c2d02840e 100644 --- a/src/Lines/SequenceTemplate.cpp +++ b/src/Lines/SequenceTemplate.cpp @@ -1,22 +1,31 @@ -// ------------------------------------------------------------------------ -// $RCSfile: SequenceTemplate.cpp,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.2 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: SequenceTemplate -// The class for storage of OPAL beam sequences with arguments. +// Class SequenceTemplate // -// ------------------------------------------------------------------------ +// An ``archetype'' for a SEQUENCE with arguments. +// The model is stored in form of a MacroStream. A call to the macro +// sequence is expanded by first replacing the arguments, and then parsing +// the resulting stream as a SEQUENCE definition. // -// $Date: 2000/03/29 10:41:41 $ -// $Author: opal $ +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland // -// ------------------------------------------------------------------------ +// All rights reserved +// +// This file is part of OPAL. +// +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. +// + #include "Lines/SequenceTemplate.h" + +#include "Utility/PAssert.h" + #include "AbstractObjects/OpalData.h" #include "Lines/Sequence.h" #include "Lines/SequenceParser.h" @@ -25,7 +34,6 @@ #include "Parser/SimpleStatement.h" #include "Utilities/ParseError.h" #include <vector> -#include <cassert> // Class SequenceTemplate // ------------------------------------------------------------------------ @@ -117,7 +125,8 @@ Object *SequenceTemplate::makeTemplate void SequenceTemplate::parseTemplate(TokenStream &is, Statement &statement) { // Save the formals. parseFormals(statement); - assert(statement.keyword("SEQUENCE")); + bool isSequence = statement.keyword("SEQUENCE"); + PAssert(isSequence); // Parse the sequence header. Object::parse(statement); @@ -140,4 +149,4 @@ void SequenceTemplate::parseTemplate(TokenStream &is, Statement &statement) { } token = is.readToken(); } -} +} \ No newline at end of file diff --git a/src/Lines/SequenceTemplate.h b/src/Lines/SequenceTemplate.h index 90d72bc13..96b9447c9 100644 --- a/src/Lines/SequenceTemplate.h +++ b/src/Lines/SequenceTemplate.h @@ -1,22 +1,28 @@ -#ifndef OPAL_SequenceTemplate_HH -#define OPAL_SequenceTemplate_HH - -// ------------------------------------------------------------------------ -// $RCSfile: SequenceTemplate.h,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.2 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: SequenceTemplate +// Class SequenceTemplate +// +// An ``archetype'' for a SEQUENCE with arguments. +// The model is stored in form of a MacroStream. A call to the macro +// sequence is expanded by first replacing the arguments, and then parsing +// the resulting stream as a SEQUENCE definition. +// +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland +// +// All rights reserved // -// ------------------------------------------------------------------------ +// This file is part of OPAL. // -// $Date: 2000/03/29 10:41:42 $ -// $Author: opal $ +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// ------------------------------------------------------------------------ +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. +// + +#ifndef OPAL_SequenceTemplate_HH +#define OPAL_SequenceTemplate_HH #include "OpalParser/Macro.h" #include "Parser/SimpleStatement.h" @@ -27,14 +33,6 @@ class Sequence; class Statement; class TokenStream; - -// Class SequenceTemplate -// ------------------------------------------------------------------------ -/// An ``archetype'' for a SEQUENCE with arguments. -// The model is stored in form of a MacroStream. A call to the macro -// sequence is expanded by first replacing the arguments, and then parsing -// the resulting stream as a SEQUENCE definition. - class SequenceTemplate: public Macro { friend class Sequence; @@ -74,4 +72,4 @@ private: MacroStream body; }; -#endif // OPAL_SequenceTemplate_HH +#endif // OPAL_SequenceTemplate_HH \ No newline at end of file diff --git a/src/OpalParser/MacroCmd.cpp b/src/OpalParser/MacroCmd.cpp index 76dec8e9c..f2c43bf97 100644 --- a/src/OpalParser/MacroCmd.cpp +++ b/src/OpalParser/MacroCmd.cpp @@ -1,30 +1,35 @@ -// ------------------------------------------------------------------------ -// $RCSfile: MacroCmd.cpp,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.1.1.1 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: MacroCmd +// Class MacroCmd +// +// This class parses the MACRO command. +// Encapsulate the buffer for the ``archetypes'' of all macros. +// The macro is stored as a MacroStream. For execution, first the +// parameters are replaced, then the resulting stream is sent to the parser. +// +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland +// +// All rights reserved +// +// This file is part of OPAL. // -// ------------------------------------------------------------------------ +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // -// $Date: 2000/03/27 09:33:43 $ -// $Author: Andreas Adelmann $ +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. // -// ------------------------------------------------------------------------ #include "OpalParser/MacroCmd.h" + +#include "Utility/PAssert.h" + #include "AbstractObjects/OpalData.h" #include "OpalParser/OpalParser.h" #include "Parser/Statement.h" #include "Utilities/ParseError.h" #include <vector> -#include <cassert> - -// Class MacroCmd -// ------------------------------------------------------------------------ MacroCmd::MacroCmd(): Macro(0u, "MACRO", @@ -99,7 +104,8 @@ Object *MacroCmd::makeTemplate macro->parseFormals(statement); // Parse macro body-> - assert(statement.keyword("MACRO")); + bool isMacro = statement.keyword("MACRO"); + PAssert(isMacro); Token token; if(statement.delimiter('{')) { @@ -126,4 +132,4 @@ Object *MacroCmd::makeTemplate } return macro; -} +} \ No newline at end of file diff --git a/src/OpalParser/MacroCmd.h b/src/OpalParser/MacroCmd.h index 79d2ec6f3..4aab1eeac 100644 --- a/src/OpalParser/MacroCmd.h +++ b/src/OpalParser/MacroCmd.h @@ -1,34 +1,36 @@ -#ifndef CLASSIC_MacroCmd_HH -#define CLASSIC_MacroCmd_HH - -// ------------------------------------------------------------------------ -// $RCSfile: MacroCmd.h,v $ -// ------------------------------------------------------------------------ -// $Revision: 1.1.1.1 $ -// ------------------------------------------------------------------------ -// Copyright: see Copyright.readme -// ------------------------------------------------------------------------ // -// Class: MacroCmd +// Class MacroCmd // -// ------------------------------------------------------------------------ +// This class parses the MACRO command. +// Encapsulate the buffer for the ``archetypes'' of all macros. +// The macro is stored as a MacroStream. For execution, first the +// parameters are replaced, then the resulting stream is sent to the parser. // -// $Date: 2000/03/27 09:33:43 $ -// $Author: Andreas Adelmann $ +// Copyright (c) 2008 - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland // -// ------------------------------------------------------------------------ +// All rights reserved +// +// This file is part of OPAL. +// +// OPAL is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// You should have received a copy of the GNU General Public License +// along with OPAL. If not, see <https://www.gnu.org/licenses/>. +// +#ifndef CLASSIC_MacroCmd_HH +#define CLASSIC_MacroCmd_HH #include "OpalParser/Macro.h" #include "OpalParser/MacroStream.h" #include "MemoryManagement/Pointer.h" #include <iosfwd> - +#include <string> // Class MacroCmd // ------------------------------------------------------------------------ -/// Encapsulate the buffer for the ``archetypes'' of all macros. -// The macro is stored as a MacroStream. For execution, first the -// parameters are replaced, then the resulting stream is sent to the parser. class MacroCmd: public Macro { @@ -65,4 +67,4 @@ private: const Parser *itsParser; }; -#endif // CLASSIC_MacroCmd_HH +#endif // CLASSIC_MacroCmd_HH \ No newline at end of file -- GitLab