Neil Brown
7d89b4aec0
Added the implementation of an ExSet type that can easily represent the set of everything
2007-11-02 11:41:59 +00:00
Neil Brown
c43a11c057
Added more checkInitVar tests (for sequential loops), but some of them fail
2007-11-01 16:39:03 +00:00
Neil Brown
6fbca55569
Added comments to the tests for checkInitVar, and added a couple more tests
2007-11-01 16:24:47 +00:00
Neil Brown
cf0cc81ae4
Added a new function that checks that variables are initialised before they are read in a control-flow graph, and added tests for it (that all now pass)
2007-11-01 11:45:36 +00:00
Neil Brown
75ed35f2e3
Fixed a list of imports not being in alphabetical order in RainUsageCheckTest
2007-11-01 11:44:38 +00:00
Neil Brown
de6bd021f0
Added the basics of an algorithm for doing iterate data-flow analysis
2007-11-01 11:41:17 +00:00
Neil Brown
49de728d6f
Added code relating to declarations in the flow-graph labels for usage checking
2007-11-01 00:33:44 +00:00
Neil Brown
fddc3fb6b8
Added support for simple input statements to the usage checker
2007-10-29 18:42:33 +00:00
Neil Brown
5280bb4fc6
Added support for output statements to the usage checker
2007-10-29 18:29:29 +00:00
Neil Brown
1f97bc7d49
Merged some common code in the usage checker (for processing the Variables)
2007-10-29 18:23:46 +00:00
Neil Brown
cb964c620f
Added support for the time statements in the usage checker
2007-10-29 17:57:57 +00:00
Neil Brown
a891e34d24
Tidied up some of the usage checker tests
2007-10-29 17:53:58 +00:00
Neil Brown
1d785b3c6d
Changed the usage checker tests to match the new usage checker
2007-10-29 17:32:34 +00:00
Neil Brown
d38c2aef08
Overhauled the usage checker to use sets of Strings for recording the used variables
2007-10-29 17:32:23 +00:00
Neil Brown
700ddf149e
Moved the old attempt at a usage checker into a new module just for doing Rain usage checks
2007-10-29 17:13:23 +00:00
Neil Brown
4d6d645010
Fixed various bugs in the build system relating to detected CCSP and C++CSP
2007-10-14 17:04:11 +00:00
Neil Brown
8e2c31f191
Tidied up some CCSP/C++CSP bits in configure.ac
2007-10-28 22:25:33 +00:00
Neil Brown
8ad4e8aab4
Added checks for required haskell libraries in configure.ac (using ghc-pkg)
2007-10-28 22:25:06 +00:00
Neil Brown
7ba4392b49
Made a common function for the required-program checks in configure.ac
2007-10-28 22:22:55 +00:00
Neil Brown
16df6a1774
Fixed some conflicts between some branches, in RainPassesTest
2007-10-28 18:34:28 +00:00
Neil Brown
7433e49d49
Added support for List types to the C and C++ backend, in genType at least
2007-10-27 11:24:24 +00:00
Neil Brown
25f2efb94c
Changed the existing Rain code (and tests) to use the new List type rather than the Array type
2007-10-25 10:13:17 +00:00
Neil Brown
a6cbdfeb94
Changed some functions in the Types module to handle the new List type
2007-10-25 10:11:19 +00:00
Neil Brown
201c6ab754
Added a List type to the AST
2007-10-25 10:02:50 +00:00
Neil Brown
cbc6a70b30
Changed the control-flow graph generation to use the proposed function dictionary, and add the scope-out nodes
2007-10-28 18:26:09 +00:00
Neil Brown
adafbd2cc4
Added support (and tests) for if statements in the control-flow graph generation
2007-10-28 17:24:26 +00:00
Neil Brown
49228150cf
Refactored a couple of clauses in the building of the control-flow graph
2007-10-28 17:04:45 +00:00
Neil Brown
5c4bf74a75
Added support (and tests) for case statements in the control-flow graph
2007-10-28 16:31:15 +00:00
Neil Brown
bd14ed56ba
Changed the edge-labelling scheme in the control-flow graph to have beginpar/endpar nodes with matching ids
2007-10-28 14:55:43 +00:00
Neil Brown
b6d525fbb8
Added tests for while loops in the control-flow graph
2007-10-28 12:39:26 +00:00
Neil Brown
cde83c83ae
Added the capability of outputting graphviz scripts representing control-flow graphs
2007-10-28 12:11:27 +00:00
Neil Brown
25f13e6c6f
Added more tests for the control-flow graph, for Specs in Structured items
2007-10-28 11:38:04 +00:00
Neil Brown
cf17814b98
Changed the types involved in the control-flow graph so that I can customise the Show implementation
2007-10-28 11:35:51 +00:00
Neil Brown
a0c54220e2
Added more tests for the Seq and Par blocks in the control-flow graph
2007-10-28 01:25:44 +00:00
Neil Brown
cb17d62018
Changed findMeta so that it now works when directly applied to a Meta tag
2007-10-28 01:23:10 +00:00
Neil Brown
d2e54ea483
Added another helper function to the Utils module
2007-10-28 01:22:55 +00:00
Neil Brown
aea462d41a
Fixed some bugs in the test harness for the control-flow graph
2007-10-28 00:36:27 +00:00
Neil Brown
fbd297e23e
Added more tests for the control-flow graph stuff (for basic Seq and Par blocks)
2007-10-28 00:13:15 +00:00
Neil Brown
9b1cd56050
Changed the identifiers/values on graph nodes in the control-flow graph to be produced monadically, and altered the tests accordingly
2007-10-27 23:59:33 +00:00
Neil Brown
8fa046798a
Tidied up and simplified the test code in FlowGraphTest to operate on lists of nodes/edges, rather than decomposing the graph
...
When you decompose a graph, each edge only appears once; on one of the nodes it is attached to. This meant our testing was not working properly.
The easier solution is to forget how the graph works underneath, get a list of nodes and a list of edges, then operate on those.
2007-10-27 23:56:44 +00:00
Neil Brown
f0c552663b
Added the initial implementation of a module (and tests) for generating a control-flow graph from an AST
...
This implementation needs to be changed; it currently uses Meta as a primary key for nodes, but that isn't valid.
2007-10-27 21:18:55 +00:00
Neil Brown
9fd67023b7
Added some new general helper functions to the Utils module.
2007-10-27 21:15:04 +00:00
Neil Brown
7f59eec189
Changed the C and C++ backends (and tests) to handle declarations with initialisers properly
2007-10-25 00:27:12 +00:00
Neil Brown
6b95827cab
Added an optional initialiser-expression to Declaration in the AST, and changed the rest of the code accordingly
2007-10-24 23:50:00 +00:00
Neil Brown
83f654a273
Implemented the code for ClearMobile in the C and C++ backends
2007-10-24 20:54:37 +00:00
Neil Brown
dfee567ffc
Added tests for ClearMobile in the C and C++ backends
2007-10-24 20:52:39 +00:00
Neil Brown
1f604781f5
Added an AST item for blanking mobiles
2007-10-24 20:50:44 +00:00
Neil Brown
48c1bea724
Added tests for the AllocMobile item in the C and C++ backends
2007-10-24 19:44:50 +00:00
Neil Brown
dd86b240b5
Implemented (most of the needed) support for AllocMobile in the C and C++ backends
2007-10-24 19:32:58 +00:00
Neil Brown
31642036b7
Added support for the new AllocMobile item in the Types module
2007-10-24 19:31:07 +00:00