aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/AST.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-10-13 05:02:35 +0800
committerchriseth <c@ethdev.com>2015-10-15 23:38:42 +0800
commit7ebd536e79215f06f5ce7e14591aa494d06032b6 (patch)
treecca1f7597e4c6ddd674db92337424b0fd412b501 /libsolidity/AST.h
parent7ba42f470753f9af25531017f319cf94eb26d3f2 (diff)
downloaddexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar.gz
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar.bz2
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar.lz
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar.xz
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.tar.zst
dexon-solidity-7ebd536e79215f06f5ce7e14591aa494d06032b6.zip
Tuple expressions.
Diffstat (limited to 'libsolidity/AST.h')
-rw-r--r--libsolidity/AST.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/libsolidity/AST.h b/libsolidity/AST.h
index 9dd67cc2..fc1db3f3 100644
--- a/libsolidity/AST.h
+++ b/libsolidity/AST.h
@@ -1068,6 +1068,30 @@ private:
};
/**
+ * Tuple or just parenthesized expression.
+ * Examples: (1, 2), (x,), (x), ()
+ * Individual components might be empty shared pointers (as in the second example).
+ * The respective types in lvalue context are: 2-tuple, 2-tuple (with wildcard), type of x, 0-tuple
+ * Not in lvalue context: 2-tuple, _1_-tuple, type of x, 0-tuple.
+ */
+class TupleExpression: public Expression
+{
+public:
+ TupleExpression(
+ SourceLocation const& _location,
+ std::vector<ASTPointer<Expression>> const& _components
+ ):
+ Expression(_location), m_components(_components) {}
+ virtual void accept(ASTVisitor& _visitor) override;
+ virtual void accept(ASTConstVisitor& _visitor) const override;
+
+ std::vector<ASTPointer<Expression>> const& components() const { return m_components; }
+
+private:
+ std::vector<ASTPointer<Expression>> m_components;
+};
+
+/**
* Operation involving a unary operator, pre- or postfix.
* Examples: ++i, delete x or !true
*/