What we're calling "braced text" is just a regular C char* augmented with a language attribute and string length, and with reference counting.
Not everything that is defined as BRACEDTEXT_T in the grammar is necessarily kept by using this module. For example, some units END up in the symbol table.
'struct bracechar' is defined first in compiler.h, to hide the details of whatever it is we do with braced text in composing NOTES and other persistent forms.
Braced text may be very long.
#include <utilities/ascConfig.h>
#include "compiler.h"
Include dependency graph for braced.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Defines | |
| #define | BCS(sbc) BraceCharString(sbc) |
| #define | BCLANG(sbc) BraceCharLang(sbc) |
| #define | BCL(sbc) BraceCharLen(sbc) |
Functions | |
| bracechar * | AddBraceChar (CONST char *string, symchar *lang) |
| bracechar * | CopyBraceChar (struct bracechar *bc) |
| void | DestroyBraceChar (struct bracechar *bc) |
| ASC_DLLSPEC CONST char * | BraceCharString (struct bracechar *sbc) |
| symchar * | BraceCharLang (struct bracechar *sbc) |
| ASC_DLLSPEC int | BraceCharLen (struct bracechar *sbc) |
1.5.1