/* Ofront+ 1.0 -s2 -48 */

#ifndef arText__oh
#define arText__oh

#include "SYSTEM.oh"

typedef
  struct arText_Stream {
    char _prvt0[1];
  } arText_Stream;

import void arText_Stream_Char (arText_Stream *self, SYSTEM_ADRINT *self__typ, CHAR value);
import void arText_Stream_Flush (arText_Stream *self, SYSTEM_ADRINT *self__typ);
import void arText_Stream_String (arText_Stream *self, SYSTEM_ADRINT *self__typ, CHAR *value, INTEGER value__len);
#define __arText_Stream_Char(self, self__typ, value) __SEND(self__typ, arText_Stream_Char, 0, void(*)(arText_Stream*, SYSTEM_ADRINT *, CHAR), (self, self__typ, value))
#define __arText_Stream_Flush(self, self__typ) __SEND(self__typ, arText_Stream_Flush, 1, void(*)(arText_Stream*, SYSTEM_ADRINT *), (self, self__typ))
#define __arText_Stream_String(self, self__typ, value, value__len) __SEND(self__typ, arText_Stream_String, 2, void(*)(arText_Stream*, SYSTEM_ADRINT *, CHAR*, INTEGER ), (self, self__typ, value, value__len))

typedef
  struct arText_Writer { /* arText_Stream */
    CHAR intFormat[8];
    CHAR hexFormat[8];
    CHAR realFormat[8];
    BOOLEAN quoteLiterals, setAsList;
  } arText_Writer;

import void arText_Writer_Boolean (arText_Writer *self, SYSTEM_ADRINT *self__typ, BOOLEAN value);
import void arText_Writer_Hex (arText_Writer *self, SYSTEM_ADRINT *self__typ, INTEGER value);
import void arText_Writer_InitWriter (arText_Writer *self, SYSTEM_ADRINT *self__typ);
import void arText_Writer_Integer (arText_Writer *self, SYSTEM_ADRINT *self__typ, INTEGER value);
import void arText_Writer_Ln (arText_Writer *self, SYSTEM_ADRINT *self__typ);
import void arText_Writer_Real (arText_Writer *self, SYSTEM_ADRINT *self__typ, REAL value);
import void arText_Writer_Set (arText_Writer *self, SYSTEM_ADRINT *self__typ, SET value);
import void arText_Writer_StringLiteral (arText_Writer *self, SYSTEM_ADRINT *self__typ, CHAR *value, INTEGER value__len);
#define __arText_Writer_Boolean(self, self__typ, value) __SEND(self__typ, arText_Writer_Boolean, 3, void(*)(arText_Writer*, SYSTEM_ADRINT *, BOOLEAN), (self, self__typ, value))
#define __arText_Writer_Hex(self, self__typ, value) __SEND(self__typ, arText_Writer_Hex, 4, void(*)(arText_Writer*, SYSTEM_ADRINT *, INTEGER), (self, self__typ, value))
#define __arText_Writer_InitWriter(self, self__typ) __SEND(self__typ, arText_Writer_InitWriter, 5, void(*)(arText_Writer*, SYSTEM_ADRINT *), (self, self__typ))
#define __arText_Writer_Integer(self, self__typ, value) __SEND(self__typ, arText_Writer_Integer, 6, void(*)(arText_Writer*, SYSTEM_ADRINT *, INTEGER), (self, self__typ, value))
#define __arText_Writer_Ln(self, self__typ) __SEND(self__typ, arText_Writer_Ln, 7, void(*)(arText_Writer*, SYSTEM_ADRINT *), (self, self__typ))
#define __arText_Writer_Real(self, self__typ, value) __SEND(self__typ, arText_Writer_Real, 8, void(*)(arText_Writer*, SYSTEM_ADRINT *, REAL), (self, self__typ, value))
#define __arText_Writer_Set(self, self__typ, value) __SEND(self__typ, arText_Writer_Set, 9, void(*)(arText_Writer*, SYSTEM_ADRINT *, SET), (self, self__typ, value))
#define __arText_Writer_StringLiteral(self, self__typ, value, value__len) __SEND(self__typ, arText_Writer_StringLiteral, 10, void(*)(arText_Writer*, SYSTEM_ADRINT *, CHAR*, INTEGER ), (self, self__typ, value, value__len))

typedef
  struct CHAR8_ARRAY *arText_String;

typedef
  struct arText_Buffer { /* arText_Writer */
    CHAR intFormat[8];
    CHAR hexFormat[8];
    CHAR realFormat[8];
    BOOLEAN quoteLiterals, setAsList;
    INTEGER length, capacity;
    arText_String value;
  } arText_Buffer;

import void arText_Buffer_Char (arText_Buffer *self, SYSTEM_ADRINT *self__typ, CHAR value);
import void arText_Buffer_Clear (arText_Buffer *self, SYSTEM_ADRINT *self__typ);
import arText_String arText_Buffer_GetString (arText_Buffer *self, SYSTEM_ADRINT *self__typ);
import void arText_Buffer_Init (arText_Buffer *self, SYSTEM_ADRINT *self__typ, INTEGER capacity);
import void arText_Buffer_String (arText_Buffer *self, SYSTEM_ADRINT *self__typ, CHAR *value, INTEGER value__len);
import void arText_Buffer_Terminate (arText_Buffer *self, SYSTEM_ADRINT *self__typ);
#define __arText_Buffer_Clear(self, self__typ) __SEND(self__typ, arText_Buffer_Clear, 11, void(*)(arText_Buffer*, SYSTEM_ADRINT *), (self, self__typ))
#define __arText_Buffer_GetString(self, self__typ) __SEND(self__typ, arText_Buffer_GetString, 13, arText_String(*)(arText_Buffer*, SYSTEM_ADRINT *), (self, self__typ))
#define __arText_Buffer_Init(self, self__typ, capacity) __SEND(self__typ, arText_Buffer_Init, 14, void(*)(arText_Buffer*, SYSTEM_ADRINT *, INTEGER), (self, self__typ, capacity))
#define __arText_Buffer_Terminate(self, self__typ) __SEND(self__typ, arText_Buffer_Terminate, 15, void(*)(arText_Buffer*, SYSTEM_ADRINT *), (self, self__typ))

typedef
  arText_Stream *arText_StreamPtr;

typedef
  struct arText_StreamWriter { /* arText_Writer */
    CHAR intFormat[8];
    CHAR hexFormat[8];
    CHAR realFormat[8];
    BOOLEAN quoteLiterals, setAsList;
    arText_StreamPtr stream;
  } arText_StreamWriter;

import void arText_StreamWriter_Char (arText_StreamWriter *self, SYSTEM_ADRINT *self__typ, CHAR value);
import void arText_StreamWriter_Flush (arText_StreamWriter *self, SYSTEM_ADRINT *self__typ);
import void arText_StreamWriter_Init (arText_StreamWriter *self, SYSTEM_ADRINT *self__typ, arText_StreamPtr stream);
import void arText_StreamWriter_String (arText_StreamWriter *self, SYSTEM_ADRINT *self__typ, CHAR *value, INTEGER value__len);
#define __arText_StreamWriter_Init(self, self__typ, stream) __SEND(self__typ, arText_StreamWriter_Init, 11, void(*)(arText_StreamWriter*, SYSTEM_ADRINT *, arText_StreamPtr), (self, self__typ, stream))


#ifndef CHAR8_ARRAY_DEF
#define CHAR8_ARRAY_DEF
typedef struct CHAR8_ARRAY {
  INTEGER len[1];
  CHAR data[1];
} CHAR8_ARRAY;
#endif 


import SYSTEM_ADRINT *arText_Stream__typ;
import SYSTEM_ADRINT *arText_Writer__typ;
import SYSTEM_ADRINT *arText_StreamWriter__typ;
import SYSTEM_ADRINT *arText_Buffer__typ;

import void *arText__init (void);


#endif
