Tim Keith
d384116347
[flang] Address review comments.
...
Use "namespace Fortran::semantics".
Add helper MakeSymbol() functions to ResolveNameVisitor to make a symbol
in the current scope.
Start work on subroutines, similar to what's been done for functions.
Original-commit: flang-compiler/f18@afe84af1c7
Reviewed-on: https://github.com/flang-compiler/f18/pull/30
2018-03-23 12:24:29 -07:00
Tim Keith
a3de9d789c
[flang] Partial implementation of Symbols and Scopes.
...
A Symbol consists of a common part (in class Symbol) containing name,
owner, attributes. Information for a specific kind of symbol is in a
variant containing one of the *Details classes. So the kind of symbol is
determined by the type of details class stored in the details_ variant.
For scopes there is a single Scope class with an enum indicating the
kind. So far there isn't a need for extra kind-specific details as with
Symbols but that could change. Symbols defined in a Scope are stored
there in a simple map.
resolve-names.cc is a partial implementation of a parse-tree walker that
resolves names to Symbols. Currently is only handles functions (which
introduce a new Scope) and entity-decls. The test-type executable was
reused as a driver for this to avoid the need for a new one.
Sample output is below. When each "end function" is encountered the
scope is dumped, which shows the symbols defined in it.
$ cat a.f90
pure integer(8) function foo(arg1, arg2) result(res)
integer :: arg1
real :: arg2
contains
function bar(arg1)
real :: bar
real :: arg1
end function
end function
$ Debug/tools/f18/test-type a.f90
Subprogram scope: 0 children
arg1: Entity type: REAL
bar: Entity type: REAL
Subprogram scope: 1 children
arg1: Entity type: INTEGER
arg2: Entity type: REAL
bar: Subprogram (arg1)
foo: Subprogram (arg1, arg2) result(res)
res: Entity type: INTEGER(8)
Original-commit: flang-compiler/f18@1cd2fbc04d
Reviewed-on: https://github.com/flang-compiler/f18/pull/30
Tree-same-pre-rewrite: false
2018-03-22 17:25:34 -07:00
Steve Scalpone
a857f382ce
[flang] Add 'todo' for the predefined scope
...
Incorporate review feedback; shorten long lines.
Original-commit: flang-compiler/f18@699fb076d7
Reviewed-on: https://github.com/flang-compiler/f18/pull/28
2018-03-22 11:53:59 -07:00
Steve Scalpone
58074411eb
[flang] Formatting changes
...
Original-commit: flang-compiler/f18@ac704fb586
Reviewed-on: https://github.com/flang-compiler/f18/pull/28
Tree-same-pre-rewrite: false
2018-03-21 22:45:43 -07:00
Steve Scalpone
54f101e05d
[flang] Update formatting
...
Extract questions and rationals from the step-wise descriptions.
Original-commit: flang-compiler/f18@38f49e0894
Reviewed-on: https://github.com/flang-compiler/f18/pull/28
Tree-same-pre-rewrite: false
2018-03-21 22:42:05 -07:00
Steve Scalpone
87ecf37155
[flang] Add semantics documentation
...
Overview of scoping, symbols, and basic semantics.
Original-commit: flang-compiler/f18@b28880a361
Reviewed-on: https://github.com/flang-compiler/f18/pull/28
Tree-same-pre-rewrite: false
2018-03-20 15:47:52 -07:00
peter klausler
92bcb7ceb2
[flang] Make unreadable code less so, per review comments.
...
Original-commit: flang-compiler/f18@78073c15a5
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
2018-03-19 16:17:23 -07:00
peter klausler
554a5641c4
[flang] Improve preprocessor error message provenances, pass f90_correct test pre21.
...
Original-commit: flang-compiler/f18@af5943e3bc
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-19 11:48:49 -07:00
peter klausler
2bde61360e
[flang] Pass as much of f90_correct as I think we can.
...
Original-commit: flang-compiler/f18@6d101d3ec8
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-16 16:58:35 -07:00
peter klausler
0983fbc3d6
[flang] More f90_correct work.
...
Original-commit: flang-compiler/f18@92b68f705f
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-16 16:13:49 -07:00
peter klausler
ad4adc2d28
[flang] More f90_correct work.
...
Original-commit: flang-compiler/f18@442771db3c
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-15 17:09:27 -07:00
peter klausler
4e02b9e4b0
[flang] Make previous commit more precise.
...
Original-commit: flang-compiler/f18@543da95754
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-15 16:28:37 -07:00
peter klausler
2e5300ce4e
[flang] Never emit :: when /-bracketed initializers appear on a type declaration stmt.
...
Original-commit: flang-compiler/f18@2ed327a4f8
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-15 16:22:38 -07:00
peter klausler
dcd094234c
[flang] Unparsing fixes, PGF90 bug work-arounds.
...
Original-commit: flang-compiler/f18@c9c98c0e5c
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-15 16:03:28 -07:00
peter klausler
4933243d3a
[flang] Remove excess newlines from cooked source, no longer needed.
...
Original-commit: flang-compiler/f18@9330b0d7fd
Reviewed-on: https://github.com/flang-compiler/f18/pull/26
Tree-same-pre-rewrite: false
2018-03-15 13:25:37 -07:00
peter klausler
393c441767
[flang] Extend documentation.
...
Original-commit: flang-compiler/f18@f090167356
Reviewed-on: https://github.com/flang-compiler/f18/pull/27
2018-03-20 09:58:45 -07:00
peter klausler
1a4662d6be
[flang] Write documentation/preprocessing.md
...
Original-commit: flang-compiler/f18@4c8f4a97ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/27
Tree-same-pre-rewrite: false
2018-03-19 17:10:53 -07:00
peter klausler
f123105c7a
[flang] More typing into documentation/parsing.md
...
Original-commit: flang-compiler/f18@73f68d0ea1
Reviewed-on: https://github.com/flang-compiler/f18/pull/27
Tree-same-pre-rewrite: false
2018-03-19 15:30:32 -07:00
peter klausler
6e83386c78
[flang] Initial cut at documentation/parsing.md
...
Original-commit: flang-compiler/f18@5484515b09
Reviewed-on: https://github.com/flang-compiler/f18/pull/27
Tree-same-pre-rewrite: false
2018-03-19 15:17:32 -07:00
peter klausler
cbf39d56d4
[flang] Do not forget to run the linker even if there was nothing to compile.
...
Original-commit: flang-compiler/f18@4f4f853e5b
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
2018-03-15 12:22:41 -07:00
peter klausler
42b72c46d1
[flang] Get clean parse-unparse-reparse-unparse on f90_correct too.
...
Original-commit: flang-compiler/f18@901a9e462c
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-15 10:59:46 -07:00
peter klausler
ed5a6c9faf
[flang] Fix regression from last commit on STAT=/ERRMSG=.
...
Original-commit: flang-compiler/f18@f031d07c30
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-14 17:07:15 -07:00
peter klausler
62d9cdd15c
[flang] More f90 unparsing.
...
Original-commit: flang-compiler/f18@b9991c1a04
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-14 17:02:21 -07:00
peter klausler
d71f3cf532
[flang] More unparsing.
...
Original-commit: flang-compiler/f18@a3ef9de518
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-14 16:31:41 -07:00
peter klausler
b7cf512e0d
[flang] Incorporate more code review comments, fix more f90.
...
Original-commit: flang-compiler/f18@2428121ab4
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-14 15:31:16 -07:00
peter klausler
b28ea527b4
[flang] Address review comments. Add note to style guide condemning if((x=y)).
...
Original-commit: flang-compiler/f18@4ca8b8e514
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-13 17:20:40 -07:00
peter klausler
46c3538c7a
[flang] Fix some F90 unparsings; address review comments.
...
Original-commit: flang-compiler/f18@af33f37600
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-13 17:11:26 -07:00
peter klausler
d39a33f80c
[flang] Start on f90_correct. Incorporate review comments.
...
Original-commit: flang-compiler/f18@3f8cecef8e
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-13 16:59:30 -07:00
peter klausler
47dbbda25d
[flang] Bugfixing and review comments.
...
Original-commit: flang-compiler/f18@29cabc7100
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-13 16:47:48 -07:00
peter klausler
79d044e9b5
[flang] Take flang-compiler/f18#2 on unparsing, now using the new parse tree walker.
...
Clean out old data structure formatter.
Create stand-alone Parsing class to compose parts of the parser together.
Hello, world!
Better error recovery on command line errors.
Fix bugs from initial run at f77_correct.
Allow parentheses on PROGRAM statement.
Fix Hollerith scanning.
Remove REDIMENSION with good error recovery.
Fix new "spaces" parser, clean up calls to it.
Fix bugs exposed by in38.f90.
Escaped \a is not special to pgf90; get slashes around STRUCTURE name right.
Better multi-byte source encoding support in Hollerith.
Reformat C++.
More work on multi-byte source encoding.
Pass 219 tests in f77_correct, with good excuses for the rest.
Original-commit: flang-compiler/f18@8a1a0aa2dc
Reviewed-on: https://github.com/flang-compiler/f18/pull/25
Tree-same-pre-rewrite: false
2018-03-13 16:32:09 -07:00
Tim Keith
01580dd19a
[flang] Replace raw pointers with std::unique_ptr.
...
This simplifies the "delete and set to null" pattern to just a call to
reset(), and "assign and set to null" to a call to std::move.
The ideal would be a custom deleter that throws an error when an
implicit delete happens but not when reset() is called, but I'm not sure
that's possible.
Original-commit: flang-compiler/f18@f618fc729a
Reviewed-on: https://github.com/flang-compiler/f18/pull/23
2018-03-01 18:04:05 -08:00
Tim Keith
600788e5f7
[flang] Add MakeTypes to build types using visitor.
...
This replaces the manual walking code in test-type.cc. It walks the
parse tree and constructs DeclTypeSpec and DerivedTypeDef objects for
each type encountered. It's in a new file, make-types.cc, so that
failing compilations complete faster.
Handle more parts of derived type definitions.
Also some minor cleanups in type.h and type.cc.
Original-commit: flang-compiler/f18@859e7e2665
Reviewed-on: https://github.com/flang-compiler/f18/pull/23
Tree-same-pre-rewrite: false
2018-03-01 15:24:35 -08:00
peter klausler
20364f0351
[flang] Ensure that the parse tree visitation Walk template works on FORMAT.
...
The classes that were segregated into format-specification.h have
also been grouped into a new Fortran::format namespace.
Code added to tools/f18/f18.cc to run a minimal visitor over
the parse trees resulting from successful parses so that any
future build problems with Walk() will be caught earlier.
Rearrange Walk instances, keep format:: ones together.
Original-commit: flang-compiler/f18@685ddb91ce
Reviewed-on: https://github.com/flang-compiler/f18/pull/22
2018-03-01 13:35:58 -08:00
peter klausler
1b0705ca0f
[flang] Fix parsing error on PROCEDURE statement in derived type definition.
...
Improve error recovery in that context.
Original-commit: flang-compiler/f18@b9e48504e6
Reviewed-on: https://github.com/flang-compiler/f18/pull/21
2018-03-01 11:28:13 -08:00
peter klausler
aa3aad34ea
[flang] Follow own new style rule about returns and elses.
...
Original-commit: flang-compiler/f18@665fdf72d1
Reviewed-on: https://github.com/flang-compiler/f18/pull/20
2018-02-28 14:55:45 -08:00
peter klausler
65ed9e1dae
[flang] Run clang-format.
...
Original-commit: flang-compiler/f18@cd52d99f21
Reviewed-on: https://github.com/flang-compiler/f18/pull/20
Tree-same-pre-rewrite: false
2018-02-28 14:53:04 -08:00
peter klausler
601e0acdeb
[flang] Improvements suggested by Tim.
...
Original-commit: flang-compiler/f18@c3d2e3e745
Reviewed-on: https://github.com/flang-compiler/f18/pull/20
Tree-same-pre-rewrite: false
2018-02-28 14:51:45 -08:00
peter klausler
07a028098f
[flang] Trait-based parse tree traversal.
...
Add a CLASS_TRAIT macro to idioms.h to define template metaprogramming
based on definable traits of user-defined classes. Tweak the boilerplate
macros in parse-tree.h to add traits to the empty, wrapper, union, and
tuple classes in the parse tree. Replace the macros in parse-tree-visitor.h
with trait-driven templates.
Original-commit: flang-compiler/f18@02400146fb
Reviewed-on: https://github.com/flang-compiler/f18/pull/20
Tree-same-pre-rewrite: false
2018-02-28 13:24:01 -08:00
Tim Keith
de65ddbae0
[flang] Use macros to reduce boilerplate.
...
The common cases of wrapper, tuple, and union classes can be further
reduced by using macros to define the Walk functions.
Original-commit: flang-compiler/f18@29e02c4886
Reviewed-on: https://github.com/flang-compiler/f18/pull/18
2018-02-27 16:52:29 -08:00
peter klausler
48f7c6f0fd
[flang] Fix test: do not allow & as continuation marker in fixed form if in a character literal.
...
Original-commit: flang-compiler/f18@26c07eb2e5
Reviewed-on: https://github.com/flang-compiler/f18/pull/19
2018-02-27 16:33:10 -08:00
peter klausler
f4a85288db
[flang] Fix some bugs that I noticed while running regression tests.
...
Add characters.h to consolidate all per-character functions
and reduce dependence on <cctype>.
Add omitted DIRECT= and UNFORMATTED= specifiers to INQUIRE statement.
Add Interval<>, rebase ProvenanceRange upon it, rebase CharPointerWithLength
and rename it ContiguousChars.
Reformat C++.
Original-commit: flang-compiler/f18@78c73c62ba
Reviewed-on: https://github.com/flang-compiler/f18/pull/19
Tree-same-pre-rewrite: false
2018-02-27 15:55:10 -08:00
peter klausler
03aecfc336
[flang] Preserve some minor changes that accumulated as I was implementing
...
an unparsing feature.
Enum classes in parse tree node class types are now defined with
a macro so that the names of the enumerations can be captured for
formatting purposes.
Add a TODO comment.
Rebase to new master with parse tree traversal code.
Original-commit: flang-compiler/f18@d6bfcfd526
Reviewed-on: https://github.com/flang-compiler/f18/pull/16
2018-02-26 15:31:46 -08:00
Tim Keith
66c9a69a61
[flang] Fix classes with variant and other fields
...
Fortran::FormatItem and UseStmt have both normal fields and a variant
named 'u'. The Walk calls for the normal fields were missing.
These were the only two classes I found where this occurs.
Original-commit: flang-compiler/f18@23b8695a74
Reviewed-on: https://github.com/flang-compiler/f18/pull/17
2018-02-26 15:07:24 -08:00
Tim Keith
2af29bc1e2
[flang] Add Unparse function.
...
Unparse takes a parse tree and converts it back to Fortran.
class UnparseVisitor implements a parse tree visitor that emits
the appropriate Fortran source for each node that it visits.
It is only partially implemented so far.
Change f18 to dump the parse tree using Unparse.
Original-commit: flang-compiler/f18@e80c13ec88
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
2018-02-26 14:52:27 -08:00
Tim Keith
0406170acb
[flang] Reorder the Walk functions.
...
Group the Walk functions that call WalkTupleClass, WalkUnionClass,
WalkWrapperClass all together, after the ones that don't follow a
simple pattern like that.
Fix the name of the include guard macro.
Original-commit: flang-compiler/f18@711613a4ad
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false
2018-02-26 14:52:27 -08:00
Tim Keith
686529a59a
[flang] Add some missing Walk functions.
...
The classes in parse-tree.h that used WRAPPER_CLASS_BOILERPLATE were
accidentally omitted.
Also remove the anonymous namespace around utilities like
WalkWrapperClass as they can be useful outside this file too.
Original-commit: flang-compiler/f18@d47c505441
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false
2018-02-26 14:52:27 -08:00
Tim Keith
2ca306abe1
[flang] Rename "visit" to "Walk" to avoid conflict with std::visit.
...
The thing called on each parse tree node during the walk is still
referred to as a visitor.
Change "pre" to "Pre" and "post" to "Post" to follow the naming
conventions.
Original-commit: flang-compiler/f18@a6ea1296b1
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false
2018-02-26 14:52:27 -08:00
Tim Keith
a9c3093b2e
[flang] Add helpers for wrapper/tuple/variant classes.
...
Add VisitWrapperClass, VisitTupleClass, and VisitVariantClass to
simplify the common cases in the parse tree. ForEachInTuple is used to
implement VisitTupleClass.
Original-commit: flang-compiler/f18@c6ae2b833b
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false
2018-02-26 14:52:27 -08:00
Tim Keith
9f07a4a3d8
[flang] First implementation of a parse tree visitor
...
Original-commit: flang-compiler/f18@0b441831f4
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false
2018-02-26 14:52:27 -08:00
Stephane Chauveau
78f3c745ea
[flang] Add missing include config file skeleton
...
Original-commit: flang-compiler/f18@beb71e4e4b
Reviewed-on: https://github.com/flang-compiler/f18/pull/13
2018-02-19 14:44:54 +01:00
Stephane Chauveau
8f6f23fc54
[flang] Add simple recursive CMake directory structure
...
Original-commit: flang-compiler/f18@a021b2ca76
Reviewed-on: https://github.com/flang-compiler/f18/pull/13
Tree-same-pre-rewrite: false
2018-02-19 14:28:12 +01:00
peter klausler
c3a2d82d3e
[flang] Support localizable formatted messages.
...
Original-commit: flang-compiler/f18@e974321494
Reviewed-on: https://github.com/flang-compiler/f18/pull/14
2018-02-21 12:12:52 -08:00
peter klausler
2bfdbb87b7
[flang] Fix bug with "expected ..." messages in token strings.
...
Original-commit: flang-compiler/f18@9cc84ba6fb
Reviewed-on: https://github.com/flang-compiler/f18/pull/14
Tree-same-pre-rewrite: false
2018-02-20 10:35:04 -08:00
peter klausler
3b544af6da
[flang] Use "..."_en_US for messages.
...
Original-commit: flang-compiler/f18@fffa881576
Reviewed-on: https://github.com/flang-compiler/f18/pull/14
Tree-same-pre-rewrite: false
2018-02-20 09:57:30 -08:00
peter klausler
206db251b7
[flang] Convert all messages to MessageTexts ("..."_msg).
...
Original-commit: flang-compiler/f18@33357f3657
Reviewed-on: https://github.com/flang-compiler/f18/pull/14
Tree-same-pre-rewrite: false
2018-02-16 16:57:40 -08:00
peter klausler
5e83ea521c
[flang] Define MessageText and "..."_msg.
...
Original-commit: flang-compiler/f18@6e9e16431c
Reviewed-on: https://github.com/flang-compiler/f18/pull/14
Tree-same-pre-rewrite: false
2018-02-16 15:47:30 -08:00
peter klausler
dd9923bf45
[flang] Update the header file guards in lib/parser to reflect the introduction of the parser namespace.
...
Original-commit: flang-compiler/f18@a11bb88396
Reviewed-on: https://github.com/flang-compiler/f18/pull/12
2018-02-16 11:42:17 -08:00
peter klausler
a60d201dc9
[flang] Reformatting and some comment clean-up.
...
Original-commit: flang-compiler/f18@cedd3d82cf
Reviewed-on: https://github.com/flang-compiler/f18/pull/11
2018-02-16 10:58:17 -08:00
peter klausler
7af9dd8736
[flang] Remove old character "cooking" parser combinators that handled Fortran
...
comments, continuations, &c. that have become obsolete with the use
of the new C++-coded prescanner module. Clean out members from
ParseState that were used only by cookedNextChar and its sub-parsers.
Original-commit: flang-compiler/f18@41717531e5
Reviewed-on: https://github.com/flang-compiler/f18/pull/11
Tree-same-pre-rewrite: false
2018-02-16 10:41:16 -08:00
peter klausler
fcb6b2a558
[flang] Remove a temporary #include <iostream> and auto-detect -Mfixed from a .f suffix.
...
Original-commit: flang-compiler/f18@962c7ed0ef
Reviewed-on: https://github.com/flang-compiler/f18/pull/10
2018-02-15 17:12:50 -08:00
peter klausler
e9332c7256
[flang] Fix a couple bugs noticed while resolving merge.
...
Original-commit: flang-compiler/f18@dbb32c60a6
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
2018-02-15 15:58:44 -08:00
peter klausler
6595462268
[flang] Complete merge of provenance feature.
...
Original-commit: flang-compiler/f18@646f68be61
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
92cbf0e968
[flang] Markdown tweaks in documentation.
...
Original-commit: flang-compiler/f18@044148ead2
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
59bb0866c3
[flang] Spruce up formatting of error message output.
...
Original-commit: flang-compiler/f18@0750985bdf
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
edbec459fb
[flang] Complete provenance tracking through macro calls.
...
Original-commit: flang-compiler/f18@8c05a6543b
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
67d916f8ba
[flang] More precise source locations on error messages. Anticipate module file scanning.
...
Original-commit: flang-compiler/f18@f4faadd389
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
3bdf65c3fd
[flang] Remove #includes that were used for debugging.
...
Original-commit: flang-compiler/f18@828ee8c2f0
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
050abcafc4
[flang] Support #include directive.
...
Original-commit: flang-compiler/f18@909622d9b7
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
10a36336df
[flang] Implement a directory search path for INCLUDE lines.
...
Original-commit: flang-compiler/f18@62129e5600
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
fe04c3a02f
[flang] Implement Fortran INCLUDE lines.
...
Original-commit: flang-compiler/f18@d01af89506
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
783d5626fb
[flang] Minor refactoring: extract TokenSequence into its own module.
...
Original-commit: flang-compiler/f18@1b17b4a069
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
5b61beaa12
[flang] Preparatory work for file inclusion.
...
Original-commit: flang-compiler/f18@1cbbd4a357
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
7e89fc78b0
[flang] Adjust CHECK() so that first token of program can begin with first character.
...
Original-commit: flang-compiler/f18@2b77e466ff
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
cd7319017a
[flang] Fix fixed form scanning, get tests passing again.
...
Original-commit: flang-compiler/f18@2c8ff18e98
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
97a7c501dc
[flang] Forge provenances for compiler-inserted text.
...
Original-commit: flang-compiler/f18@dbdd01aa25
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
8e585de36b
[flang] Fix macro definitions (broken by provenances earlier).
...
Original-commit: flang-compiler/f18@3ed548b477
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
3bca5d088e
[flang] Restructure inter-class references for clarity.
...
Original-commit: flang-compiler/f18@1836cd5d06
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
f5202dd68f
[flang] Fix column tracking in fixed form.
...
Original-commit: flang-compiler/f18@8c9a1013fa
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
90c3cad9a7
[flang] Debugging new provenance support.
...
Original-commit: flang-compiler/f18@1233f666da
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
09865ffe7b
[flang] Replace Position with Provenance everywhere.
...
Original-commit: flang-compiler/f18@8c2da3f8cc
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
3558c22101
[flang] Development of character provenance.
...
Original-commit: flang-compiler/f18@88c5329580
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
peter klausler
ea69370e52
[flang] Begin work on character provenances.
...
Original-commit: flang-compiler/f18@ea3c05af5a
Reviewed-on: https://github.com/flang-compiler/f18/pull/9
Tree-same-pre-rewrite: false
2018-02-15 15:58:44 -08:00
Tim Keith
4a735b61c6
[flang] Rename methods with uppercase names.
...
Original-commit: flang-compiler/f18@00fec54e5a
Reviewed-on: https://github.com/flang-compiler/f18/pull/8
2018-02-15 08:27:19 -08:00
Tim Keith
e8707d3706
[flang] Add test-type.cc to build types from parse tree.
...
Original-commit: flang-compiler/f18@47101317fb
Reviewed-on: https://github.com/flang-compiler/f18/pull/8
Tree-same-pre-rewrite: false
2018-02-14 15:29:18 -08:00
Tim Keith
cbd894be78
[flang] Continue adding to type.h
...
New classes: Bound, DeclTypeSpec, ShapeSpec, ComponentArraySpec,
DataComponentDef, ProcDecl, ProcComponentDef, DerivedTypedef
Original-commit: flang-compiler/f18@a09d1e8c81
Reviewed-on: https://github.com/flang-compiler/f18/pull/8
Tree-same-pre-rewrite: false
2018-02-14 15:24:02 -08:00
Tim Keith
6c168650b7
[flang] Add Attrs class to represent set of Attr
...
Original-commit: flang-compiler/f18@8bb1f0eb9b
Reviewed-on: https://github.com/flang-compiler/f18/pull/8
Tree-same-pre-rewrite: false
2018-02-14 15:07:59 -08:00
Steve Scalpone
ac364b1786
[flang] Revert "Schauveau cmake"
...
Original-commit: flang-compiler/f18@be33dc182a
Reviewed-on: https://github.com/flang-compiler/f18/pull/7
2018-02-14 09:06:47 -08:00
Stephane Chauveau
002fcc72ec
[flang] Fix incorrect clang/ directory name in include
...
Original-commit: flang-compiler/f18@ff61e3228a
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
2018-02-09 10:09:20 +01:00
Stephane Chauveau
6f805b0b7f
[flang] Simplified git clone in README
...
Original-commit: flang-compiler/f18@198d2e6c8a
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
ad2b8f50a9
[flang] fix bad indentation in README
...
Original-commit: flang-compiler/f18@60a0123f46
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
4fce05cf03
[flang] minor changres
...
Original-commit: flang-compiler/f18@1d351d2114
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
3887bcc1bf
[flang] updated build instructions in README.md
...
Original-commit: flang-compiler/f18@0fea8bd042
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
a734b9e5bf
[flang] add preliminary README file
...
Original-commit: flang-compiler/f18@1fc60916fb
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
ab1dbce5a4
[flang] after clang-format
...
Original-commit: flang-compiler/f18@7e464a7c33
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Stephane Chauveau
c27603ec9c
[flang] Add new global CMakefile infrastructure with examples
...
Original-commit: flang-compiler/f18@81b91f3270
Reviewed-on: https://github.com/flang-compiler/f18/pull/6
Tree-same-pre-rewrite: false
2018-02-09 10:09:20 +01:00
Tim Keith
c0d92ef566
[flang] Clean up Makefile, add reformat target.
...
Now the only targets in Makefile are Debug, Release, and reformat.
"make reformat" reformats all C++ source in place.
Also includes the result of "make reformat". Most of the changes were
just moving the "main" include up.
Original-commit: flang-compiler/f18@cf7d3a7afb
2018-02-07 16:27:36 -08:00
Tim Keith
e065e5b510
[flang] Move type.{h,cc} and attr.{h,cc}
...
The are now in new namespace and directory, "semantics", similar to
"parser".
Original-commit: flang-compiler/f18@115a1341e2
Reviewed-on: https://github.com/flang-compiler/f18/pull/5
2018-02-07 15:54:07 -08:00
Tim Keith
4a588883d2
[flang] Adapt to new directory for idioms.cc, idioms.h.
...
Change idioms.h so that calls to die will work outside the parser
namespace.
Use unordered_map to cache IntConst values.
Original-commit: flang-compiler/f18@9d06c385d9
Reviewed-on: https://github.com/flang-compiler/f18/pull/3
2018-02-07 15:19:54 -08:00
Tim Keith
3bdae798f2
[flang] Address some of the review comments.
...
Original-commit: flang-compiler/f18@ecdffa3745
Reviewed-on: https://github.com/flang-compiler/f18/pull/3
Tree-same-pre-rewrite: false
2018-02-07 13:57:58 -08:00
Tim Keith
59157ff1a5
[flang] Initial work on the representation of types.
...
Still work to do for derived types components, array specs, type-bound
procedures, etc.
Added executable type-test to the cmake file which exercises some of the
basic functionality. Modified the Makefile so that "make Debug" does a
cmake build.
Original-commit: flang-compiler/f18@02e8c4c867
Reviewed-on: https://github.com/flang-compiler/f18/pull/3
Tree-same-pre-rewrite: false
2018-02-06 16:46:29 -08:00
peter klausler
14322536e3
[flang] Tweaked .clang-format, then ran it.
...
Original-commit: flang-compiler/f18@e10e43b691
Reviewed-on: https://github.com/flang-compiler/f18/pull/4
2018-02-07 12:27:36 -08:00
peter klausler
0ba1a14be2
[flang] Impose a directory structure. Move files around. Introduce
...
an intermediate "parser" namespace.
Original-commit: flang-compiler/f18@690b6f0d1e
Reviewed-on: https://github.com/flang-compiler/f18/pull/4
Tree-same-pre-rewrite: false
2018-02-07 12:04:42 -08:00
peter klausler
6e22a3563e
[flang] Markdown improvements.
...
Original-commit: flang-compiler/f18@f40b5e40df
2018-02-06 11:14:53 -08:00
peter klausler
1e69ed0c1b
[flang] Convert parser combinator documentation file to Markdown.
...
Original-commit: flang-compiler/f18@263865c97a
2018-02-05 16:53:38 -08:00
peter klausler
94c26b688e
[flang] Alphabetize and remove settings that match LLVM defaults.
...
Original-commit: flang-compiler/f18@82b1803f76
2018-02-05 16:08:46 -08:00
peter klausler
673626b1c8
[flang] Rename c++style.md -> C++style.md.
...
Original-commit: flang-compiler/f18@4bde27deae
2018-02-05 15:59:19 -08:00
peter klausler
ef0bd23bc6
[flang] More Markdown fixes.
...
Original-commit: flang-compiler/f18@8e77ed1f0c
2018-02-05 15:58:22 -08:00
peter klausler
2353eb0e92
[flang] More Markdown fixes.
...
Original-commit: flang-compiler/f18@7097566fa5
2018-02-05 15:53:17 -08:00
peter klausler
badb07d4b8
[flang] More Markdown fixes.
...
Original-commit: flang-compiler/f18@7f7b1deb31
2018-02-05 15:50:42 -08:00
peter klausler
ffe393ee9e
[flang] More Markdown fixes.
...
Original-commit: flang-compiler/f18@89bdd4bf07
2018-02-05 15:43:46 -08:00
peter klausler
2bcfa16011
[flang] Fix Markdown usage.
...
Original-commit: flang-compiler/f18@ee9e67964c
2018-02-05 15:39:52 -08:00
peter klausler
7f9cf6125b
[flang] Convert c++style.txt to c++style.md.
...
Original-commit: flang-compiler/f18@6b846b3c55
2018-02-05 15:28:17 -08:00
peter klausler
eed938f5c4
[flang] Fix #else after triggered #elif.
...
Original-commit: flang-compiler/f18@77db3281ec
2018-02-05 14:45:32 -08:00
peter klausler
16c6f534a5
[flang] Update .clang-format, then reformat all C++ files.
...
Original-commit: flang-compiler/f18@0ec44de4b7
2018-02-05 14:29:26 -08:00
peter klausler
bdea10d9af
[flang] Adjust indentation on public:/private: labels in class definitions.
...
Original-commit: flang-compiler/f18@8c0e5a52a9
2018-02-05 12:54:36 -08:00
peter klausler
be830d6b35
[flang] Variadic macros, __VA_ARG__ and __VA_OPT__, and use
...
"default: CRASH_NO_CASE;" in place of prior macro.
Original-commit: flang-compiler/f18@2108896155
2018-02-05 12:48:09 -08:00
Tim Keith
340a4320b4
[flang] Add .clang-format and "make formatted" rule.
...
Original-commit: flang-compiler/f18@5ef28a6112
2018-02-05 10:18:38 -08:00
peter klausler
ac12232e68
[flang] C++ usage and style guide summary.
...
Original-commit: flang-compiler/f18@2cf1be7b05
2018-02-05 10:46:32 -08:00
peter klausler
55fe4d2af5
[flang] More preprocessing.
...
Original-commit: flang-compiler/f18@a553505c3c
2018-02-02 15:52:43 -08:00
peter klausler
ad7125ffb0
[flang] Predefined macros (__FILE__, __LINE__, __DATE__, __TIME__).
...
Original-commit: flang-compiler/f18@8c7f51aa87
2018-02-01 15:01:23 -08:00
peter klausler
809235196a
[flang] Merge my local .gitignore with master.
...
Original-commit: flang-compiler/f18@10134ce283
2018-02-01 12:11:24 -08:00
Tim Keith
198a959bf1
[flang] Remove line that was added by mistake
...
Original-commit: flang-compiler/f18@629348c130
2018-02-01 07:31:53 -08:00
Tim Keith
d45e6c7eda
[flang] Add CMakeLists.txt and .gitignore
...
Original-commit: flang-compiler/f18@d9a1ea4c49
Tree-same-pre-rewrite: false
2018-01-30 16:37:59 -08:00
peter klausler
93cf3aec5e
[flang] Support #if/#elif directives with Fortran/C expressions.
...
Original-commit: flang-compiler/f18@5ea8303954
2018-02-01 12:08:02 -08:00
peter klausler
93db9dd00d
[flang] Remove some scaffolding code that I just inadvertently committed, sorry.
...
Original-commit: flang-compiler/f18@df4dc2ff94
2018-01-30 15:30:56 -08:00
peter klausler
6f94e8472d
[flang] Preprocessor work. f18 now passes all my tests except for #if (expression)
...
and file inclusion.
Original-commit: flang-compiler/f18@07ebac21f5
2018-01-30 15:22:26 -08:00
peter klausler
33d7854c55
[flang] Clean up: convert CharPointerWithLength into a proper class.
...
Original-commit: flang-compiler/f18@514823234f
2018-01-30 12:21:25 -08:00
peter klausler
880b7939c3
[flang] Add temporary driver main program f2018-demo.cc.
...
Original-commit: flang-compiler/f18@bbe51ba0ec
2018-01-30 11:55:48 -08:00
peter klausler
55d503fb5a
[flang] Add source.{h,cc}.
...
Original-commit: flang-compiler/f18@39df4a3ef4
2018-01-30 11:55:03 -08:00
peter klausler
e78861cba2
[flang] Add prescan.{h,cc}.
...
Original-commit: flang-compiler/f18@6437ba318c
2018-01-30 11:54:47 -08:00
peter klausler
90cd9bab20
[flang] Add preprocessor.{h,cc}.
...
Original-commit: flang-compiler/f18@8ac9fc913d
2018-01-30 11:54:31 -08:00
peter klausler
1651445fd3
[flang] Add position.{h,cc}.
...
Original-commit: flang-compiler/f18@78c9c256ba
2018-01-30 11:54:19 -08:00
peter klausler
e76093ca67
[flang] Add parse-tree.{h,cc}.
...
Original-commit: flang-compiler/f18@bface7a17b
2018-01-30 11:54:04 -08:00
peter klausler
4dd84b6512
[flang] Add message.{h,cc}.
...
Original-commit: flang-compiler/f18@9c21346414
2018-01-30 11:53:49 -08:00
peter klausler
8fca5084fa
[flang] Add idioms.{h,cc}.
...
Original-commit: flang-compiler/f18@237979b3a8
2018-01-30 11:53:33 -08:00
peter klausler
b210228973
[flang] Add Makefile.
...
Original-commit: flang-compiler/f18@dae1179012
2018-01-30 11:52:26 -08:00
peter klausler
1621078131
[flang] Add user-state.h.
...
Original-commit: flang-compiler/f18@5daf35b05d
2018-01-30 11:52:12 -08:00
peter klausler
7e293b52c2
[flang] Add parse-state.h.
...
Original-commit: flang-compiler/f18@357c9f2795
2018-01-30 11:51:59 -08:00
peter klausler
4f342a7899
[flang] Add indirection.h.
...
Original-commit: flang-compiler/f18@149aa7654c
2018-01-30 11:51:44 -08:00
peter klausler
59cb501b1c
[flang] Add grammar.h.
...
Original-commit: flang-compiler/f18@e5249a0269
2018-01-30 11:51:31 -08:00
peter klausler
77dae1e110
[flang] Add format-specification.h.
...
Original-commit: flang-compiler/f18@7eea874fa4
2018-01-30 11:51:15 -08:00
peter klausler
74615d7239
[flang] Add debug-parser.h.
...
Original-commit: flang-compiler/f18@e5484d45b4
2018-01-30 11:50:59 -08:00
peter klausler
5e49363c38
[flang] Add cooked-tokens.h.
...
Original-commit: flang-compiler/f18@7e452551f7
2018-01-30 11:50:36 -08:00
peter klausler
857165fa86
[flang] Add cooked-chars.h.
...
Original-commit: flang-compiler/f18@da5c3bf08b
2018-01-30 11:50:21 -08:00
peter klausler
d2fe0d263d
[flang] Add char-parsers.h.
...
Original-commit: flang-compiler/f18@0f72c5cb40
2018-01-30 11:50:05 -08:00
peter klausler
76de984a6a
[flang] Add basic-parsers.h.
...
Original-commit: flang-compiler/f18@2cb456daae
2018-01-30 11:49:46 -08:00
peter klausler
15fdae6efe
[flang] Add char-buffer.{h,cc}.
...
Original-commit: flang-compiler/f18@14adb86568
2018-01-30 11:47:17 -08:00
peter klausler
e4e52073c2
[flang] Add parser-combinators.txt documentation file.
...
Original-commit: flang-compiler/f18@c4634a44b9
2018-01-29 15:39:42 -08:00
peter klausler
6ae0a5aca6
[flang] Adding initial files.
...
Original-commit: flang-compiler/f18@8afd0a6c23
2018-01-29 14:55:57 -08:00
Tim Keith
e4344e42cf
[flang] Add README
...
Original-commit: flang-compiler/f18@39876049a9
2018-01-25 13:36:26 -08:00