Translate position to a GCC location
This commit is contained in:
35
include/elna/gcc/elna-generic.h
Normal file
35
include/elna/gcc/elna-generic.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include "elna/source/ast.h"
|
||||
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include "coretypes.h"
|
||||
#include "tree.h"
|
||||
#include "tree-iterator.h"
|
||||
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
namespace elna
|
||||
{
|
||||
namespace gcc
|
||||
{
|
||||
class generic_visitor final : public source::empty_visitor
|
||||
{
|
||||
tree current_statements{ NULL_TREE };
|
||||
tree current_expression{ NULL_TREE };
|
||||
std::unordered_map<std::string, tree> symbol_map;
|
||||
|
||||
public:
|
||||
void visit(source::program *program) override;
|
||||
void visit(source::call_statement *statement) override;
|
||||
void visit(source::integer_literal *literal) override;
|
||||
void visit(source::boolean_literal *literal) override;
|
||||
void visit(source::binary_expression *expression) override;
|
||||
void visit(source::declaration *declaration) override;
|
||||
void visit(source::variable_expression *expression) override;
|
||||
void visit(source::assign_statement *statement) override;
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user