libutap
systembuilder.h
Go to the documentation of this file.
1 // -*- mode: C++; c-file-style: "stroustrup"; c-basic-offset: 4; indent-tabs-mode: nil; -*-
2 
3 /* libutap - Uppaal Timed Automata Parser.
4  Copyright (C) 2002-2004 Uppsala University and Aalborg University.
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Lesser General Public License
8  as published by the Free Software Foundation; either version 2.1 of
9  the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful, but
12  WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public
17  License along with this library; if not, write to the Free Software
18  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19  USA
20 */
21 
22 #ifndef UTAP_SYSTEMBUILDER_H
23 #define UTAP_SYSTEMBUILDER_H
24 
25 #include <cassert>
26 #include <vector>
27 #include <inttypes.h>
28 
29 #include "utap/statementbuilder.h"
30 #include "utap/utap.h"
31 
32 namespace UTAP
33 {
70  {
71  protected:
74 
77 
80 
83 
86 
89 
92 
94 
96 
97  //
98  // Method for handling types
99  //
100 
102 
103  virtual variable_t *addVariable(type_t type, const char* name,
104  expression_t init);
105  virtual bool addFunction(type_t type, const char* name);
106 
107  void addSelectSymbolToFrame(const char* name, frame_t&);
109 
110  public:
112 
113  virtual void ganttDeclStart(const char* name);
114  virtual void ganttDeclSelect(const char *id);
115  virtual void ganttDeclEnd();
116  virtual void ganttEntryStart();
117  virtual void ganttEntrySelect(const char *id);
118  virtual void ganttEntryEnd();
119  virtual void declProgress(bool);
120  virtual void procBegin(const char* name, const bool isTA = true,
121  const std::string type = "", const std::string mode = "");
122  virtual void procEnd();
123  virtual void procState(const char* name, bool hasInvariant, bool hasER);
124  virtual void procStateCommit(const char* name);
125  virtual void procStateUrgent(const char* name);
126  virtual void procStateInit(const char* name);
127  virtual void procBranchpoint(const char* name);
128  virtual void procEdgeBegin(const char* from, const char* to, const bool control, const char* actname);
129  virtual void procEdgeEnd(const char* from = 0, const char* to = 0);
130  virtual void procSelect(const char *id);
131  virtual void procGuard();
132  virtual void procSync(Constants::synchronisation_t type);
133  virtual void procUpdate();
134  virtual void procProb();
135  virtual void instantiationBegin(const char*, size_t, const char*);
136  virtual void instantiationEnd(
137  const char *, size_t, const char *, size_t);
138  virtual void process(const char*);
139  virtual void processListEnd();
140  virtual void done();
141  virtual void beforeUpdate();
142  virtual void afterUpdate();
143  virtual void beginChanPriority();
144  virtual void addChanPriority(char separator);
145  virtual void defaultChanPriority();
146  virtual void incProcPriority();
147  virtual void procPriority(const char*);
148  virtual void procInstanceLine();
149  virtual void instanceName(const char* name, bool templ=true);
150  virtual void instanceNameBegin(const char *name);
151  virtual void instanceNameEnd(const char *name, size_t arguments);
152  virtual void procMessage(const char* from, const char* to, const int loc, const bool pch);
153  virtual void procMessage(Constants::synchronisation_t type);
154  virtual void procCondition(const std::vector<char*> anchors, const int loc,
155  const bool pch, const bool hot);
156  virtual void procCondition(); // Label
157  virtual void procLscUpdate(const char* anchor, const int loc, const bool pch);
158  virtual void procLscUpdate(); // Label
159  virtual void hasPrechart(const bool pch);
160 
161  virtual void exprSync(Constants::synchronisation_t type);
162  virtual void declIO(const char*,int,int);
163  virtual void declDynamicTemplate (std::string);
164 
165  virtual void queryBegin();
166  virtual void queryFormula(const char* formula, const char* location);
167  virtual void queryComment(const char* comment);
168  virtual void queryEnd();
169  };
170 }
171 #endif
virtual void procEdgeBegin(const char *from, const char *to, const bool control, const char *actname)
Definition: systembuilder.cpp:305
virtual void declIO(const char *, int, int)
Definition: systembuilder.cpp:799
virtual void done()
Definition: systembuilder.cpp:495
virtual void defaultChanPriority()
Definition: systembuilder.cpp:527
virtual void procLscUpdate()
Definition: systembuilder.cpp:764
virtual void ganttEntryStart()
Definition: systembuilder.cpp:139
virtual void queryFormula(const char *formula, const char *location)
Definition: systembuilder.cpp:838
virtual void procStateUrgent(const char *name)
Definition: systembuilder.cpp:269
iodecl_t * currentIODecl
Definition: systembuilder.h:93
Information about a condition.
Definition: system.h:200
virtual void procState(const char *name, bool hasInvariant, bool hasER)
Add a state to the current template.
Definition: systembuilder.cpp:236
virtual void queryComment(const char *comment)
Definition: systembuilder.cpp:847
#define comment
Definition: lexer.cc:623
SystemBuilder(TimedAutomataSystem *)
Definition: systembuilder.cpp:45
message_t * currentMessage
The message under construction.
Definition: systembuilder.h:88
virtual void declDynamicTemplate(std::string)
Dynamic.
Definition: systembuilder.cpp:814
virtual void beforeUpdate()
Definition: systembuilder.cpp:499
virtual void ganttEntrySelect(const char *id)
Definition: systembuilder.cpp:144
virtual void instantiationBegin(const char *, size_t, const char *)
Definition: systembuilder.cpp:374
virtual void ganttDeclEnd()
Definition: systembuilder.cpp:130
Information about a message.
Definition: system.h:187
This class constructs a TimedAutomataSystem.
Definition: systembuilder.h:69
virtual void procEdgeEnd(const char *from=0, const char *to=0)
Definition: systembuilder.cpp:332
virtual void exprSync(Constants::synchronisation_t type)
Definition: systembuilder.cpp:776
Definition: lexer.cc:585
Definition: system.h:438
A reference to a frame.
Definition: symbols.h:183
virtual void addChanPriority(char separator)
Definition: systembuilder.cpp:521
declarations_t * getCurrentDeclarationBlock()
Definition: systembuilder.cpp:80
virtual bool addFunction(type_t type, const char *name)
Definition: systembuilder.cpp:75
virtual void incProcPriority()
Definition: systembuilder.cpp:532
Definition: system.h:127
void addSelectSymbolToFrame(const char *name, frame_t &)
Definition: systembuilder.cpp:85
virtual void beginChanPriority()
Definition: systembuilder.cpp:515
virtual void afterUpdate()
Definition: systembuilder.cpp:505
virtual void procBranchpoint(const char *name)
Definition: systembuilder.cpp:287
void declHybridRec(expression_t)
virtual void queryBegin()
Verification queries.
Definition: systembuilder.cpp:835
virtual void ganttEntryEnd()
Definition: systembuilder.cpp:149
synchronisation_t
Definition: common.h:263
virtual void procInstanceLine()
Adds an instance line to the current template.
Definition: systembuilder.cpp:554
A reference to an expression.
Definition: expression.h:68
virtual void procStateCommit(const char *name)
Definition: systembuilder.cpp:252
virtual void procSelect(const char *id)
Definition: systembuilder.cpp:337
virtual void procEnd()
Definition: systembuilder.cpp:225
Information about an edge.
Definition: system.h:84
virtual void ganttDeclSelect(const char *id)
Definition: systembuilder.cpp:125
Definition: system.h:162
virtual void procCondition()
Definition: systembuilder.cpp:740
virtual variable_t * addVariable(type_t type, const char *name, expression_t init)
Definition: systembuilder.cpp:62
virtual void procUpdate()
Definition: systembuilder.cpp:354
virtual void hasPrechart(const bool pch)
Definition: systembuilder.cpp:771
Base type for variables, clocks, etc.
Definition: system.h:42
instanceLine_t * currentInstanceLine
The instance line under construction.
Definition: systembuilder.h:91
int32_t currentProcPriority
The current process priority level.
Definition: systembuilder.h:73
virtual void instanceNameEnd(const char *name, size_t arguments)
Definition: systembuilder.cpp:604
virtual void instanceName(const char *name, bool templ=true)
templ is true if the name of the instance contains parameters like "Train(1)".
Definition: systembuilder.cpp:567
condition_t * currentCondition
The condition under construction.
Definition: systembuilder.h:82
query_t * currentQuery
Definition: systembuilder.h:95
update_t * currentUpdate
The update under construction.
Definition: systembuilder.h:85
virtual void declProgress(bool)
Guard progress measure declaration.
Definition: systembuilder.cpp:163
Information about an instance line.
Definition: system.h:348
A reference to a type.
Definition: type.h:92
virtual void procProb()
Definition: systembuilder.cpp:361
edge_t * currentEdge
The edge under construction.
Definition: systembuilder.h:76
virtual void instantiationEnd(const char *, size_t, const char *, size_t)
Definition: systembuilder.cpp:402
virtual void queryEnd()
Definition: systembuilder.cpp:853
Partial implementation of the builder interface, useful for building something with statements that i...
Definition: statementbuilder.h:38
virtual void procBegin(const char *name, const bool isTA=true, const std::string type="", const std::string mode="")
Definition: systembuilder.cpp:179
virtual void procMessage(const char *from, const char *to, const int loc, const bool pch)
Add a message to the current template.
Definition: systembuilder.cpp:683
Gantt chart entry.
Definition: system.h:147
virtual void procSync(Constants::synchronisation_t type)
Definition: systembuilder.cpp:348
virtual void procGuard()
Definition: systembuilder.cpp:342
virtual void procStateInit(const char *name)
Definition: systembuilder.cpp:292
virtual void process(const char *)
Definition: systembuilder.cpp:471
virtual void procPriority(const char *)
Definition: systembuilder.cpp:537
virtual void ganttDeclStart(const char *name)
Definition: systembuilder.cpp:119
Definition: system.h:472
gantt_t * currentGantt
The gantt map under construction.
Definition: systembuilder.h:79
Information about an update.
Definition: system.h:214
virtual void processListEnd()
Definition: systembuilder.cpp:491
virtual void instanceNameBegin(const char *name)
Definition: systembuilder.cpp:594