0024897: Possibility of uncontrolled exit if scanner fails in ExprIntrp
[occt.git] / src / ExprIntrp / ExprIntrp_Analysis.cdl
CommitLineData
b311480e 1-- Created on: 1992-02-21
2-- Created by: Arnaud BOUZY
3-- Copyright (c) 1992-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 8-- This library is free software; you can redistribute it and/or modify it under
9-- the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17private class Analysis from ExprIntrp
18
19 ---Purpose:
20
21uses Generator from ExprIntrp,
22 GeneralExpression from Expr,
23 GeneralRelation from Expr,
24 GeneralFunction from Expr,
25 StackOfGeneralExpression from ExprIntrp,
26 StackOfGeneralRelation from ExprIntrp,
27 StackOfGeneralFunction from ExprIntrp,
6af4fe1c 28 ListOfInteger from TColStd,
7fd59977 29 SequenceOfGeneralExpression from Expr,
30 SequenceOfNamedFunction from ExprIntrp,
31 SequenceOfNamedExpression from ExprIntrp,
32 NamedFunction from Expr,
33 NamedExpression from Expr,
34 AsciiString from TCollection,
97385d61 35 ListOfAsciiString from TColStd
7fd59977 36
37is
38
39 Create
40 returns Analysis;
41
42 SetMaster(me : in out; agen : Generator)
43 is static;
44
45 Push(me : in out; exp : GeneralExpression)
46 is static;
47
48 PushRelation(me : in out; rel : GeneralRelation)
49 is static;
50
51 PushName(me : in out; name : AsciiString)
52 is static;
53
54 PushValue(me : in out; degree : Integer)
55 is static;
56
57 PushFunction(me : in out; func : GeneralFunction)
58 is static;
59
60 Pop(me : in out)
61 returns GeneralExpression
62 is static;
63
64 PopRelation(me : in out)
65 returns GeneralRelation
66 is static;
67
68 PopName(me : in out)
69 returns AsciiString
70 is static;
71
72 PopValue(me: in out)
73 returns Integer
74 is static;
75
76 PopFunction(me: in out)
77 returns GeneralFunction
78 is static;
79
80 IsExpStackEmpty(me)
81 returns Boolean
82 is static;
83
84 IsRelStackEmpty(me)
85 returns Boolean
86 is static;
87
88 ResetAll(me : in out)
89 is static;
90
91 Use(me : in out; func : NamedFunction)
92 is static;
93
94 Use(me : in out; named : NamedExpression)
95 is static;
96
97 GetNamed(me : in out; name : AsciiString)
98 returns NamedExpression
99 is static;
100
101 GetFunction(me : in out; name : AsciiString)
102 returns NamedFunction
103 is static;
104
105fields
106
107 myGEStack : StackOfGeneralExpression;
108 myGRStack : StackOfGeneralRelation;
109 myGFStack : StackOfGeneralFunction;
97385d61 110 myNameStack : ListOfAsciiString from TColStd;
6af4fe1c 111 myValueStack : ListOfInteger;
7fd59977 112 myFunctions : SequenceOfNamedFunction;
113 myNamed : SequenceOfNamedExpression;
114 myMaster : Generator;
115
116end Analysis;