2018-03-29 02:15:00 +02:00
|
|
|
#include "../../lib/parser/parsing.h"
|
2018-03-02 16:16:36 +01:00
|
|
|
#include "../../lib/semantics/attr.h"
|
|
|
|
#include "../../lib/semantics/type.h"
|
|
|
|
#include <cstdlib>
|
|
|
|
#include <iostream>
|
|
|
|
#include <list>
|
|
|
|
#include <optional>
|
|
|
|
#include <sstream>
|
|
|
|
#include <string>
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
using namespace Fortran;
|
|
|
|
using namespace parser;
|
|
|
|
|
2018-03-29 02:15:00 +02:00
|
|
|
extern void DoSemanticAnalysis(const CookedSource &, const Program &);
|
2018-03-02 16:16:36 +01:00
|
|
|
|
|
|
|
//static void visitProgramUnit(const ProgramUnit &unit);
|
|
|
|
|
|
|
|
int main(int argc, char *const argv[]) {
|
|
|
|
if (argc != 2) {
|
|
|
|
std::cerr << "Expected 1 source file, got " << (argc - 1) << "\n";
|
|
|
|
return EXIT_FAILURE;
|
|
|
|
}
|
|
|
|
std::string path{argv[1]};
|
2018-04-03 01:06:18 +02:00
|
|
|
Parsing parsing;
|
|
|
|
if (parsing.ForTesting(path, std::cerr)) {
|
|
|
|
DoSemanticAnalysis(parsing.messages().cooked(), *parsing.parseTree());
|
2018-04-03 00:51:04 +02:00
|
|
|
return EXIT_SUCCESS;
|
2018-03-02 16:16:36 +01:00
|
|
|
}
|
2018-04-03 00:51:04 +02:00
|
|
|
return EXIT_FAILURE;
|
2018-03-02 16:16:36 +01:00
|
|
|
}
|