source: src/SynTree/TypeExpr.cc @ ed52dd5

ADTast-experimental
Last change on this file since ed52dd5 was 6e50a6b, checked in by Michael Brooks <mlbrooks@…>, 3 years ago

Implementing language-provided syntax for (array) dimensions.

Former z(i) and Z(N) macros are eliminated.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// TypeExpr.cc --
8//
9// Author           : Richard C. Bilson
10// Created On       : Mon May 18 07:44:20 2015
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Mon May 18 11:03:15 2015
13// Update Count     : 1
14//
15
16#include <iosfwd>            // for ostream
17
18#include "Common/utility.h"  // for maybeClone
19#include "Expression.h"      // for TypeExpr, Expression
20#include "Type.h"            // for Type
21
22TypeExpr::TypeExpr( Type *type ) : type( type ) {
23}
24
25TypeExpr::TypeExpr( const TypeExpr &other ) : Expression( other ), type( maybeClone( other.type ) ) {
26}
27
28TypeExpr::~TypeExpr() {
29        delete type;
30}
31
32void TypeExpr::print( std::ostream &os, Indenter indent ) const {
33        if ( type ) type->print( os, indent );
34        Expression::print( os, indent );
35}
36
37DimensionExpr::DimensionExpr( std::string name ) : Expression(), name(name) {
38        assertf(name != "0", "Zero is not a valid name");
39        assertf(name != "1", "One is not a valid name");
40}
41
42DimensionExpr::DimensionExpr( const DimensionExpr & other ) : Expression( other ), name( other.name ) {
43}
44
45DimensionExpr::~DimensionExpr() {}
46
47void DimensionExpr::print( std::ostream & os, Indenter indent ) const {
48        os << "Type-Sys Value: " << get_name();
49        Expression::print( os, indent );
50}
51// Local Variables: //
52// tab-width: 4 //
53// mode: c++ //
54// compile-command: "make install" //
55// End: //
Note: See TracBrowser for help on using the repository browser.