diff options
author | Mike Buland <eichlan@xagasoft.com> | 2011-12-29 23:30:49 -0700 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2011-12-29 23:30:49 -0700 |
commit | 35f71b12dc48a928d98743f607f62b2f6dbe7307 (patch) | |
tree | f4297f57e570f52f3776392fc8ed4075db1ab4ac /src/variable.h | |
parent | f66458278ce3663397fc985a1253c85b74f011e6 (diff) | |
download | stage-35f71b12dc48a928d98743f607f62b2f6dbe7307.tar.gz stage-35f71b12dc48a928d98743f607f62b2f6dbe7307.tar.bz2 stage-35f71b12dc48a928d98743f607f62b2f6dbe7307.tar.xz stage-35f71b12dc48a928d98743f607f62b2f6dbe7307.zip |
Goto works, scopes work.
Diffstat (limited to 'src/variable.h')
-rw-r--r-- | src/variable.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/variable.h b/src/variable.h index 42dd865..7f482a3 100644 --- a/src/variable.h +++ b/src/variable.h | |||
@@ -6,6 +6,17 @@ | |||
6 | #include <bu/string.h> | 6 | #include <bu/string.h> |
7 | #include <bu/hash.h> | 7 | #include <bu/hash.h> |
8 | 8 | ||
9 | #include "enums.h" | ||
10 | |||
11 | class VariableRef | ||
12 | { | ||
13 | public: | ||
14 | ScopeId sid; | ||
15 | Bu::String sName; | ||
16 | |||
17 | bool operator==( const VariableRef &rhs ) const; | ||
18 | }; | ||
19 | |||
9 | class Variable | 20 | class Variable |
10 | { | 21 | { |
11 | friend uint32_t Bu::__calcHashCode<Variable>( const Variable &k ); | 22 | friend uint32_t Bu::__calcHashCode<Variable>( const Variable &k ); |
@@ -35,7 +46,7 @@ public: | |||
35 | virtual ~Variable(); | 46 | virtual ~Variable(); |
36 | 47 | ||
37 | static Variable newSituationName( const Bu::String &s ); | 48 | static Variable newSituationName( const Bu::String &s ); |
38 | static Variable newVariableName( const Bu::String &s ); | 49 | static Variable newVariableName( const Bu::String &s, ScopeId sid ); |
39 | 50 | ||
40 | Type getType() const { return eType; } | 51 | Type getType() const { return eType; } |
41 | 52 | ||
@@ -43,6 +54,7 @@ public: | |||
43 | int64_t getInt() const; | 54 | int64_t getInt() const; |
44 | double getFloat() const; | 55 | double getFloat() const; |
45 | Bu::String getString() const; | 56 | Bu::String getString() const; |
57 | VariableRef getVariableRef() const; | ||
46 | 58 | ||
47 | Variable to( Type e ) const; | 59 | Variable to( Type e ) const; |
48 | 60 | ||
@@ -81,6 +93,7 @@ private: | |||
81 | Bu::String *sValue; | 93 | Bu::String *sValue; |
82 | VList *lValue; | 94 | VList *lValue; |
83 | VHash *hValue; | 95 | VHash *hValue; |
96 | VariableRef *rValue; | ||
84 | }; | 97 | }; |
85 | }; | 98 | }; |
86 | 99 | ||