Skip to content

Commit dad0995

Browse files
committed
updated readme
1 parent 6dd0836 commit dad0995

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

README.rst

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ it contains list of parameters.
157157

158158
In the body, a special node :xml:`<specification>`, followed by a collection of statements can be found.
159159

160-
The :xml:`<specification>` contains a collection of :xml:`<declaraion>` nodes.
160+
The :xml:`<specification>` contains a collection of following nodes:
161+
162+
* :xml:`<declaraion>`
163+
* :xml:`<use>`
164+
* ...
161165

162166
And, each of the statements listed after the specification, can be either compound or simple.
163167

@@ -175,6 +179,10 @@ It has :xml:`<lower-bound>`, :xml:`<upper-bound>` and :xml:`<step>`.
175179

176180
In the header of :xml:`<if>`, an expression is present.
177181

182+
In the body of :xml:`<select>` there multiple :xml:`<case>` nodes.
183+
These are also compound (i.e. each of them has :xml:`<header>` and :xml:`<body>`),
184+
however they exist only within the body of select statement.
185+
178186
Expression might be a single node like:
179187

180188
* :xml:`<name>`
@@ -212,6 +220,26 @@ Remaining details of AST are not decided yet. For the time being, to see impleme
212220
please take a look into `<src/fortran/ofp/XMLPrinter.java>`_.
213221

214222

223+
Unhandled corner cases
224+
~~~~~~~~~~~~~~~~~~~~~~
225+
226+
in certain corner cases, the parse tree might deviate from the above description.
227+
228+
This might be due to two main reasons:
229+
230+
1) Some feature is not yet implemented in this XML output generator
231+
2) The events provided by OFP are not sufficient to generate a correct tree.
232+
233+
In case 1, all contributions to this project are very welcome. The implementation of any one
234+
of the missing features might not be very troublesome. The main reason why many of those features
235+
are not implemented yet is because the Fortran codes the current contributors work with
236+
do not use them.
237+
238+
In case 2, there is a need to dynamically reorder/modify/delete nodes, or otherwise manipulate
239+
existing parse tree while adding new nodes. In such case contributions are also very welcome,
240+
but implementation might be much more challenging in such cases.
241+
242+
215243
Python wrapper for the generator
216244
================================
217245

0 commit comments

Comments
 (0)