Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision b729c016f3453a98c5a45b00f7672d37bbe58e02)
+++ src/SynTree/Expression.h	(revision bbf17d58aeb69c276d8d74285d77906a3ad36409)
@@ -163,4 +163,34 @@
 };
 
+// [Qualifier].name; Qualifier is the type_name from the parser
+class QualifiedNameExpr : public Expression {
+  public:
+	Type * type; // Convert to [parent] QualifiedNameExpr
+	std::string name; // Convert from NameExpr
+
+	QualifiedNameExpr( Type * type, std::string name): 
+		Expression(), type(type), name(name) {
+		std::cout << "Making QualifiedNameExpr" << std::endl;
+		print( std::cout );
+	}
+	QualifiedNameExpr( const QualifiedNameExpr & other): Expression(other), type(other.type), name(other.name) {
+
+	}
+	virtual ~QualifiedNameExpr() {
+		delete type;
+	}
+
+	virtual QualifiedNameExpr * clone() const override {
+		return new QualifiedNameExpr( * this );
+	}
+	virtual void accept( Visitor & v ) override { (void)v; }
+	virtual void accept( Visitor & v ) const override { (void)v; }
+	virtual Expression * acceptMutator( Mutator & m ) override { (void) m;return nullptr; }
+	virtual void print( std::ostream & os, Indenter indent = {} ) const override {
+		type->print( os, indent );
+		std::cout << name << std::endl;
+	}
+};
+
 /// VariableExpr represents an expression that simply refers to the value of a named variable.
 /// Does not take ownership of var.
