Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
OPAL
src
Commits
9397abf2
Commit
9397abf2
authored
Aug 05, 2020
by
snuverink_j
Browse files
don't execute relevant code in assert; use PAssert; add copyright header
parent
e486cc0b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
140 additions
and
123 deletions
+140
-123
src/Lines/LineTemplate.cpp
src/Lines/LineTemplate.cpp
+25
-21
src/Lines/LineTemplate.h
src/Lines/LineTemplate.h
+22
-24
src/Lines/SequenceTemplate.cpp
src/Lines/SequenceTemplate.cpp
+25
-16
src/Lines/SequenceTemplate.h
src/Lines/SequenceTemplate.h
+22
-24
src/OpalParser/MacroCmd.cpp
src/OpalParser/MacroCmd.cpp
+24
-18
src/OpalParser/MacroCmd.h
src/OpalParser/MacroCmd.h
+22
-20
No files found.
src/Lines/LineTemplate.cpp
View file @
9397abf2
// ------------------------------------------------------------------------
// $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
::mak
eTemplate()"
,
throw
ParseError
(
"Line
Template::pars
eTemplate()"
,
"Equals sign '=' expected."
);
}
}
}
\ No newline at end of file
src/Lines/LineTemplate.h
View file @
9397abf2
#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
src/Lines/SequenceTemplate.cpp
View file @
9397abf2
// ------------------------------------------------------------------------
// $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
src/Lines/SequenceTemplate.h
View file @
9397abf2
#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
src/OpalParser/MacroCmd.cpp
View file @
9397abf2
// ------------------------------------------------------------------------
// $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
src/OpalParser/MacroCmd.h
View file @
9397abf2
#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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment