Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision ca9d65e54b7ed187b75dfe016b8d4e2debd19fa4)
+++ src/Parser/ExpressionNode.cc	(revision 59c8dff49bbb5284b39ab27da894a644327a531a)
@@ -690,4 +690,9 @@
 } // build_unary_val
 
+ast::Expr * build_enum_pos_expr( const CodeLocation & location, ast::Expr * expr_node ) {
+	// return nullptr
+	return new ast::EnumPosExpr( location, std::move( expr_node ) );
+}
+
 ast::Expr * build_binary_val( const CodeLocation & location,
 		OperKinds op,
Index: src/Parser/ExpressionNode.h
===================================================================
--- src/Parser/ExpressionNode.h	(revision ca9d65e54b7ed187b75dfe016b8d4e2debd19fa4)
+++ src/Parser/ExpressionNode.h	(revision 59c8dff49bbb5284b39ab27da894a644327a531a)
@@ -83,2 +83,4 @@
 ast::Expr * build_func( const CodeLocation &, ExpressionNode * function, ExpressionNode * expr_node );
 ast::Expr * build_compoundLiteral( const CodeLocation &, DeclarationNode * decl_node, InitializerNode * kids );
+
+ast::Expr * build_enum_pos_expr( const CodeLocation &, ast::Expr * expr_node );
