Gyoji Compiler
Loading...
Searching...
No Matches
jformat-pretty.hpp
1#pragma once
2
3#include <gyoji-backend/jbackend.hpp>
4
5namespace Gyoji::backend {
6 using namespace Gyoji::frontend::ast;
12 class JBackendFormatPretty : public JBackend {
13 public:
16 virtual int process(const SyntaxNode * file);
17
18 std::string collect_comments(const SyntaxNode * node);
19 std::string break_multiline_comment(std::string str);
20
21 void print_whitespace(ASTDataNonSyntax::ptr node);
22 void print_comments(std::vector<ASTDataNonSyntax::ptr> &non_syntax_list);
23 void print_comment_single_line(ASTDataNonSyntax::ptr node);
24 void print_comment_multi_line(ASTDataNonSyntax::ptr node);
25 void print_file_metadata(ASTDataNonSyntax::ptr node);
26 void print_non_syntax(ASTDataNonSyntax::ptr node);
27
28 void print_node_generic(const SyntaxNode * node);
29 void print_node_plain(const SyntaxNode * node);
30 void print_node(const SyntaxNode * node);
31 void print_scope_body(const SyntaxNode * node);
32 void newline();
33
34 void print_node_function_def(const SyntaxNode * node);
35
36 int indent_level;
37 int depth;
38 };
39
40};
Definition jformat-pretty.hpp:12
Weakly-typed syntax node.
Definition syntax-node.hpp:55
Abstract syntax tree.
Definition syntax-node.hpp:22