Last change
on this file since 4d860ea3 was
1ee0a4da,
checked in by Andrew Beach <ajbeach@…>, 11 months ago
|
Translated the box pass to the new AST. This includes direct as possible translations of the existing passes are two fix in passes which correct AST problems the direct translation causes. Outside the box pass there have already been many changes, ad there is another in Instantiate Generics, which disconnects designators instead of leaving them connected to the original polymorphic type, which breaks the invarants once the fields are removed in the Eraser sub-pass. There was also a change that was made and un-made in one commit. If translate from the new-AST to the old-AST part way you must, where possible, sort the TypeEnvKey? values by string comparison. However, it now passes over that so it would be just extra complexity and run time, so I removed it. I stand at the exit from a great woods, just shy of a year from when I entered it. It has been a difficult and tiring journey. The path has been long and at times comically winding; but most often it was invisible, hidden under an impenetrable canopy and I spend days looking for it. All for a short jog forward before getting lost again. In front of me is another woods. It looks smaller, but I can't see the other side. Anyways, time to keep walking.
|
-
Property mode set to
100644
|
File size:
860 bytes
|
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 | // Box.h -- Implement polymorphic function calls and types. |
---|
8 | // |
---|
9 | // Author : Richard C. Bilson |
---|
10 | // Created On : Mon May 18 07:44:20 2015 |
---|
11 | // Last Modified By : Andrew Beach |
---|
12 | // Last Modified On : Thr Oct 6 13:37:00 2022 |
---|
13 | // Update Count : 7 |
---|
14 | // |
---|
15 | |
---|
16 | #pragma once |
---|
17 | |
---|
18 | #include <list> // for list |
---|
19 | |
---|
20 | class Declaration; |
---|
21 | namespace ast { |
---|
22 | class TranslationUnit; |
---|
23 | } |
---|
24 | |
---|
25 | namespace GenPoly { |
---|
26 | /// boxes polymorphic function calls |
---|
27 | void box( std::list< Declaration* >& translationUnit ); |
---|
28 | void box( ast::TranslationUnit & translationUnit ); |
---|
29 | } // namespace GenPoly |
---|
30 | |
---|
31 | // Local Variables: // |
---|
32 | // tab-width: 4 // |
---|
33 | // mode: c++ // |
---|
34 | // compile-command: "make install" // |
---|
35 | // End: // |
---|
Note: See
TracBrowser
for help on using the repository browser.