kolibrios/programs/develop/tinybasic-1.0.4/inc/formatter.h

67 lines
1.1 KiB
C
Raw Permalink Normal View History

/*
* Tiny BASIC
* Listing Output Header
*
* Released as Public Domain by Damian Gareth Walker, 2019
* Created: 18-Sep-2019
*/
#ifndef __FORMATTER_H__
#define __FORMATTER_H__
/* included headers */
#include "errors.h"
#include "statement.h"
/*
* Data Declarations
*/
/* Formatter Class */
typedef struct formatter_data FormatterData;
typedef struct formatter Formatter;
typedef struct formatter {
/* Properties */
FormatterData *priv; /* private data */
char *output; /* the formatted output */
/*
* Create a formatted version of the program
* params:
* Formatter* the formatter
* ProgramNode* the syntax tree
* returns:
* char* the formatted BASIC program
*/
void (*generate) (Formatter *, ProgramNode *);
/*
* Destroy the formatter when no longer needed
* params:
* Formatter* the doomed formatter
*/
void (*destroy) (Formatter *);
} Formatter;
/*
* Function Declarations
*/
/*
* The Formatter constructor
* returns:
* Formatter* the new formatter
*/
Formatter *new_Formatter (ErrorHandler *errors);
#endif