Nearly CC
An educational compiler skeleton
highlevel_formatter.h
1
// Copyright (c) 2021-2023, David H. Hovemeyer <david.hovemeyer@gmail.com>
2
//
3
// Permission is hereby granted, free of charge, to any person obtaining a
4
// copy of this software and associated documentation files (the "Software"),
5
// to deal in the Software without restriction, including without limitation
6
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
7
// and/or sell copies of the Software, and to permit persons to whom the
8
// Software is furnished to do so, subject to the following conditions:
9
//
10
// The above copyright notice and this permission notice shall be included
11
// in all copies or substantial portions of the Software.
12
//
13
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
17
// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19
// OTHER DEALINGS IN THE SOFTWARE.
20
21
#ifndef HIGHLEVEL_FORMATTER_H
22
#define HIGHLEVEL_FORMATTER_H
23
24
#include "formatter.h"
25
27
class
HighLevelFormatter
:
public
Formatter
{
28
public
:
29
HighLevelFormatter
();
30
virtual
~
HighLevelFormatter
();
31
36
virtual
std::string
format_operand
(
const
Operand
&operand)
const
;
37
42
virtual
std::string
format_instruction
(
const
Instruction
*ins)
const
;
43
};
44
45
#endif
// HIGHLEVEL_FORMATTER_H
Formatter
A Formatter turns Operand and Instruction objects into strings, which in turn allows high-level and l...
Definition:
formatter.h:30
HighLevelFormatter
Implementation of Formatter for high-level code.
Definition:
highlevel_formatter.h:27
HighLevelFormatter::format_instruction
virtual std::string format_instruction(const Instruction *ins) const
Convert a high-level Instruction to a formatted string.
Definition:
highlevel_formatter.cpp:72
HighLevelFormatter::format_operand
virtual std::string format_operand(const Operand &operand) const
Convert a high-level Operand to a formatted string.
Definition:
highlevel_formatter.cpp:36
Instruction
Instruction object type.
Definition:
instruction.h:31
Operand
Definition:
operand.h:31
Generated by
1.9.1