Further attempts to remove wchar_t conversion warnings
This commit is contained in:
parent
8d01f1c01c
commit
50c7a75c3c
8 changed files with 98 additions and 64 deletions
|
@ -339,9 +339,9 @@ runs of a given colour, or give an if-X-then-Y rule:
|
|||
state->current_block = rule->execute_block;
|
||||
} else if (Regexp::match(&mr, line, L"runs of (%c+) {")) {
|
||||
colouring_rule *rule = Languages::new_rule(state->current_block);
|
||||
int r = UNQUOTED_COLOUR;
|
||||
wchar_t r = UNQUOTED_COLOUR;
|
||||
if (Str::ne(mr.exp[0], I"unquoted")) r = Languages::colour(mr.exp[0], tfp);
|
||||
rule->execute_block = Languages::new_block(state->current_block, r);
|
||||
rule->execute_block = Languages::new_block(state->current_block, (int) r);
|
||||
state->current_block = rule->execute_block;
|
||||
} else if (Regexp::match(&mr, line, L"instances of (%c+) {")) {
|
||||
colouring_rule *rule = Languages::new_rule(state->current_block);
|
||||
|
@ -438,8 +438,8 @@ Note that rules can be unconditional, in that the premiss always passes.
|
|||
typedef struct colouring_rule {
|
||||
/* the premiss: */
|
||||
int sense; /* |FALSE| to negate the condition */
|
||||
int match_colour; /* for |coloured C|, or else |NOT_A_COLOUR| */
|
||||
int match_keyword_of_colour; /* for |keyword C|, or else |NOT_A_COLOUR| */
|
||||
wchar_t match_colour; /* for |coloured C|, or else |NOT_A_COLOUR| */
|
||||
wchar_t match_keyword_of_colour; /* for |keyword C|, or else |NOT_A_COLOUR| */
|
||||
struct text_stream *match_text; /* or length 0 to mean "anything" */
|
||||
int match_prefix; /* one of the |*_RULE_PREFIX| values above */
|
||||
wchar_t match_regexp_text[MAX_ILDF_REGEXP_LENGTH];
|
||||
|
@ -563,7 +563,7 @@ typedef struct reserved_word {
|
|||
CLASS_DEFINITION
|
||||
} reserved_word;
|
||||
|
||||
reserved_word *Languages::reserved(programming_language *pl, text_stream *W, int C,
|
||||
reserved_word *Languages::reserved(programming_language *pl, text_stream *W, wchar_t C,
|
||||
text_file_position *tfp) {
|
||||
reserved_word *rw;
|
||||
LOOP_OVER_LINKED_LIST(rw, reserved_word, pl->reserved_words)
|
||||
|
@ -572,9 +572,9 @@ reserved_word *Languages::reserved(programming_language *pl, text_stream *W, int
|
|||
}
|
||||
rw = CREATE(reserved_word);
|
||||
rw->word = Str::duplicate(W);
|
||||
rw->colour = C;
|
||||
rw->colour = (int) C;
|
||||
ADD_TO_LINKED_LIST(rw, reserved_word, pl->reserved_words);
|
||||
Analyser::mark_reserved_word(&(pl->built_in_keywords), rw->word, C);
|
||||
Analyser::mark_reserved_word(&(pl->built_in_keywords), rw->word, (int) C);
|
||||
return rw;
|
||||
}
|
||||
|
||||
|
@ -600,7 +600,7 @@ but which are not expressible in the syntax of this file.
|
|||
@d UNQUOTED_COLOUR '_'
|
||||
|
||||
=
|
||||
int Languages::colour(text_stream *T, text_file_position *tfp) {
|
||||
wchar_t Languages::colour(text_stream *T, text_file_position *tfp) {
|
||||
if (Str::get_first_char(T) != '!') {
|
||||
Errors::in_text_file("colour names must begin with !", tfp);
|
||||
return PLAIN_COLOUR;
|
||||
|
|
|
@ -348,7 +348,7 @@ int Painter::satisfies(hash_table *HT, colouring_rule *rule, text_stream *matter
|
|||
} else if (rule->match_keyword_of_colour != NOT_A_COLOUR) {
|
||||
TEMPORARY_TEXT(id)
|
||||
Str::substr(id, Str::at(matter, from), Str::at(matter, to+1));
|
||||
int rw = Analyser::is_reserved_word(HT, id, rule->match_keyword_of_colour);
|
||||
int rw = Analyser::is_reserved_word(HT, id, (int) rule->match_keyword_of_colour);
|
||||
DISCARD_TEXT(id)
|
||||
if (rw == FALSE) return FALSE;
|
||||
} else if (rule->match_colour != NOT_A_COLOUR) {
|
||||
|
|
|
@ -181,7 +181,7 @@ int Platform__system(const char *cmd) {
|
|||
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 222 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 239 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
typedef HANDLE foundation_thread;
|
||||
typedef int foundation_thread_attributes;
|
||||
|
||||
|
@ -189,7 +189,7 @@ struct Win32_Thread_Start { void *(*fn)(void *); void* arg; };
|
|||
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 304 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 321 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
struct Win32_Mutex { INIT_ONCE init; CRITICAL_SECTION crit; };
|
||||
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
|
@ -1865,8 +1865,8 @@ typedef struct colouring_language_block {
|
|||
typedef struct colouring_rule {
|
||||
/* the premiss: */
|
||||
int sense; /* |FALSE| to negate the condition */
|
||||
int match_colour; /* for |coloured C|, or else |NOT_A_COLOUR| */
|
||||
int match_keyword_of_colour; /* for |keyword C|, or else |NOT_A_COLOUR| */
|
||||
wchar_t match_colour; /* for |coloured C|, or else |NOT_A_COLOUR| */
|
||||
wchar_t match_keyword_of_colour; /* for |keyword C|, or else |NOT_A_COLOUR| */
|
||||
struct text_stream *match_text; /* or length 0 to mean "anything" */
|
||||
int match_prefix; /* one of the |*_RULE_PREFIX| values above */
|
||||
wchar_t match_regexp_text[MAX_ILDF_REGEXP_LENGTH];
|
||||
|
@ -2475,39 +2475,39 @@ void Platform__sleep(int seconds) ;
|
|||
void Platform__notification(text_stream *text, int happy) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 198 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
void Platform__Win32_ResetConsoleMode(void) ;
|
||||
#line 202 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
void Platform__Win32_ResetConsole(void) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 205 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 211 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
void Platform__configure_terminal(void) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 236 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 253 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
int Platform__create_thread(foundation_thread *pt, const foundation_thread_attributes *pa, void *(*fn)(void *), void *arg) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 251 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 268 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
int Platform__join_thread(foundation_thread pt, void** rv) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 255 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 272 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
void Platform__init_thread(foundation_thread_attributes* pa, size_t size) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 258 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 275 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
size_t Platform__get_thread_stack_size(foundation_thread_attributes* pa) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 270 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 287 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
time_t Platform__never_time(void) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 274 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 291 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
time_t Platform__timestamp(char *transcoded_filename) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 280 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 297 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
off_t Platform__size(char *transcoded_filename) ;
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#line 64 "inweb/foundation-module/Chapter 2/Debugging Log.w"
|
||||
|
@ -3875,9 +3875,9 @@ colouring_rule * Languages__new_rule(colouring_language_block *within) ;
|
|||
#line 486 "inweb/Chapter 4/Programming Languages.w"
|
||||
void Languages__parse_rule(language_reader_state *state, text_stream *premiss, text_stream *action, text_file_position *tfp) ;
|
||||
#line 566 "inweb/Chapter 4/Programming Languages.w"
|
||||
reserved_word * Languages__reserved(programming_language *pl, text_stream *W, int C, text_file_position *tfp) ;
|
||||
reserved_word * Languages__reserved(programming_language *pl, text_stream *W, wchar_t C, text_file_position *tfp) ;
|
||||
#line 603 "inweb/Chapter 4/Programming Languages.w"
|
||||
int Languages__colour(text_stream *T, text_file_position *tfp) ;
|
||||
wchar_t Languages__colour(text_stream *T, text_file_position *tfp) ;
|
||||
#line 628 "inweb/Chapter 4/Programming Languages.w"
|
||||
int Languages__boolean(text_stream *T, text_file_position *tfp) ;
|
||||
#line 642 "inweb/Chapter 4/Programming Languages.w"
|
||||
|
@ -5451,33 +5451,50 @@ void Platform__notification(text_stream *text, int happy) {
|
|||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 195 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
int Win32_ConsModeChanged = 0;
|
||||
DWORD Win32_ConsMode = 0;
|
||||
#define WIN32CONS_RESET_MODE 1
|
||||
#define WIN32CONS_RESET_OUTCP 2
|
||||
|
||||
void Platform__Win32_ResetConsoleMode(void) {
|
||||
if (Win32_ConsModeChanged) {
|
||||
int Win32_ResetConsole = 0;
|
||||
DWORD Win32_ConsoleMode = 0;
|
||||
UINT Win32_ConsoleOutCP = 0;
|
||||
|
||||
void Platform__Win32_ResetConsole(void) {
|
||||
if (Win32_ResetConsole & WIN32CONS_RESET_MODE) {
|
||||
HANDLE cons = GetStdHandle(STD_ERROR_HANDLE);
|
||||
if (cons) SetConsoleMode(cons, Win32_ConsMode);
|
||||
if (cons) SetConsoleMode(cons, Win32_ConsoleMode);
|
||||
}
|
||||
if (Win32_ResetConsole & WIN32CONS_RESET_OUTCP)
|
||||
SetConsoleOutputCP(Win32_ConsoleOutCP);
|
||||
}
|
||||
|
||||
void Platform__configure_terminal(void) {
|
||||
HANDLE cons = GetStdHandle(STD_ERROR_HANDLE);
|
||||
if (cons) {
|
||||
if (GetConsoleMode(cons, &Win32_ConsMode)) {
|
||||
if ((Win32_ConsMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) == 0) {
|
||||
if (SetConsoleMode(cons, Win32_ConsMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING)) {
|
||||
Win32_ConsModeChanged = 1;
|
||||
atexit(Platform__Win32_ResetConsoleMode);
|
||||
if (GetConsoleMode(cons, &Win32_ConsoleMode)) {
|
||||
if ((Win32_ConsoleMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) == 0) {
|
||||
if (SetConsoleMode(cons, Win32_ConsoleMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING)) {
|
||||
Win32_ResetConsole |= WIN32CONS_RESET_MODE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Win32_ConsoleOutCP = GetConsoleOutputCP();
|
||||
UINT newCP = 0;
|
||||
int loc = Locales__get(CONSOLE_LOCALE);
|
||||
if (loc == FILE_ENCODING_ISO_STRF)
|
||||
newCP = 28591; /* ISO 8859-1 Latin */
|
||||
else if (loc == FILE_ENCODING_UTF8_STRF)
|
||||
newCP = 65001; /* UTF-8 */
|
||||
if ((newCP != 0) && SetConsoleOutputCP(newCP))
|
||||
Win32_ResetConsole |= WIN32CONS_RESET_OUTCP;
|
||||
|
||||
if (Win32_ResetConsole != 0) atexit(Platform__Win32_ResetConsole);
|
||||
}
|
||||
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 229 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 246 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
DWORD WINAPI Platform__Win32_Thread_Func(LPVOID param) {
|
||||
struct Win32_Thread_Start* start = (struct Win32_Thread_Start*)param;
|
||||
(start->fn)(start->arg);
|
||||
|
@ -5513,7 +5530,7 @@ size_t Platform__get_thread_stack_size(foundation_thread_attributes* pa) {
|
|||
|
||||
#endif /* PLATFORM_WINDOWS */
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
#line 270 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
#line 287 "inweb/foundation-module/Chapter 1/Windows Platform.w"
|
||||
time_t Platform__never_time(void) {
|
||||
return (time_t) 0;
|
||||
}
|
||||
|
@ -21728,9 +21745,9 @@ void Languages__read_definition_line(text_stream *line, text_file_position *tfp,
|
|||
state->current_block = rule->execute_block;
|
||||
} else if (Regexp__match(&mr, line, L"runs of (%c+) {")) {
|
||||
colouring_rule *rule = Languages__new_rule(state->current_block);
|
||||
int r = UNQUOTED_COLOUR;
|
||||
wchar_t r = UNQUOTED_COLOUR;
|
||||
if (Str__ne(mr.exp[0], TL_IS_323)) r = Languages__colour(mr.exp[0], tfp);
|
||||
rule->execute_block = Languages__new_block(state->current_block, r);
|
||||
rule->execute_block = Languages__new_block(state->current_block, (int) r);
|
||||
state->current_block = rule->execute_block;
|
||||
} else if (Regexp__match(&mr, line, L"instances of (%c+) {")) {
|
||||
colouring_rule *rule = Languages__new_rule(state->current_block);
|
||||
|
@ -21980,7 +21997,7 @@ void Languages__parse_rule(language_reader_state *state, text_stream *premiss,
|
|||
|
||||
#line 565 "inweb/Chapter 4/Programming Languages.w"
|
||||
|
||||
reserved_word *Languages__reserved(programming_language *pl, text_stream *W, int C,
|
||||
reserved_word *Languages__reserved(programming_language *pl, text_stream *W, wchar_t C,
|
||||
text_file_position *tfp) {
|
||||
reserved_word *rw;
|
||||
LOOP_OVER_LINKED_LIST(rw, reserved_word, pl->reserved_words)
|
||||
|
@ -21989,14 +22006,14 @@ reserved_word *Languages__reserved(programming_language *pl, text_stream *W, int
|
|||
}
|
||||
rw = CREATE(reserved_word);
|
||||
rw->word = Str__duplicate(W);
|
||||
rw->colour = C;
|
||||
rw->colour = (int) C;
|
||||
ADD_TO_LINKED_LIST(rw, reserved_word, pl->reserved_words);
|
||||
Analyser__mark_reserved_word(&(pl->built_in_keywords), rw->word, C);
|
||||
Analyser__mark_reserved_word(&(pl->built_in_keywords), rw->word, (int) C);
|
||||
return rw;
|
||||
}
|
||||
|
||||
#line 603 "inweb/Chapter 4/Programming Languages.w"
|
||||
int Languages__colour(text_stream *T, text_file_position *tfp) {
|
||||
wchar_t Languages__colour(text_stream *T, text_file_position *tfp) {
|
||||
if (Str__get_first_char(T) != '!') {
|
||||
Errors__in_text_file("colour names must begin with !", tfp);
|
||||
return PLAIN_COLOUR;
|
||||
|
@ -23334,7 +23351,7 @@ int Painter__satisfies(hash_table *HT, colouring_rule *rule, text_stream *matter
|
|||
} else if (rule->match_keyword_of_colour != NOT_A_COLOUR) {
|
||||
TEMPORARY_TEXT(id)
|
||||
Str__substr(id, Str__at(matter, from), Str__at(matter, to+1));
|
||||
int rw = Analyser__is_reserved_word(HT, id, rule->match_keyword_of_colour);
|
||||
int rw = Analyser__is_reserved_word(HT, id, (int) rule->match_keyword_of_colour);
|
||||
DISCARD_TEXT(id)
|
||||
if (rw == FALSE) return FALSE;
|
||||
} else if (rule->match_colour != NOT_A_COLOUR) {
|
||||
|
|
|
@ -259,28 +259,45 @@ find this).
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsModeChanged</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">DWORD</span><span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsMode</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">define</span><span class="plain-syntax"> </span><span class="identifier-syntax">WIN32CONS_RESET_MODE</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">define</span><span class="plain-syntax"> </span><span class="identifier-syntax">WIN32CONS_RESET_OUTCP</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Platform::Win32_ResetConsoleMode</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Win32_ConsModeChanged</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">DWORD</span><span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsoleMode</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">UINT</span><span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsoleOutCP</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Platform::Win32_ResetConsole</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> & </span><span class="identifier-syntax">WIN32CONS_RESET_MODE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HANDLE</span><span class="plain-syntax"> </span><span class="identifier-syntax">cons</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GetStdHandle</span><span class="plain-syntax">(</span><span class="identifier-syntax">STD_ERROR_HANDLE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cons</span><span class="plain-syntax">) </span><span class="identifier-syntax">SetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, </span><span class="identifier-syntax">Win32_ConsMode</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cons</span><span class="plain-syntax">) </span><span class="identifier-syntax">SetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, </span><span class="identifier-syntax">Win32_ConsoleMode</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> & </span><span class="identifier-syntax">WIN32CONS_RESET_OUTCP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SetConsoleOutputCP</span><span class="plain-syntax">(</span><span class="identifier-syntax">Win32_ConsoleOutCP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Platform::configure_terminal</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Platform::configure_terminal</span></span>:<br/>Foundation Module - <a href="1-fm.html#SP8">§8</a><br/>POSIX Platforms - <a href="1-pp.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HANDLE</span><span class="plain-syntax"> </span><span class="identifier-syntax">cons</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GetStdHandle</span><span class="plain-syntax">(</span><span class="identifier-syntax">STD_ERROR_HANDLE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cons</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">GetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, &</span><span class="identifier-syntax">Win32_ConsMode</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Win32_ConsMode</span><span class="plain-syntax"> & </span><span class="identifier-syntax">ENABLE_VIRTUAL_TERMINAL_PROCESSING</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, </span><span class="identifier-syntax">Win32_ConsMode</span><span class="plain-syntax"> | </span><span class="identifier-syntax">ENABLE_VIRTUAL_TERMINAL_PROCESSING</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsModeChanged</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">atexit</span><span class="plain-syntax">(</span><a href="1-wp.html#SP12" class="function-link"><span class="function-syntax">Platform::Win32_ResetConsoleMode</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">GetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, &</span><span class="identifier-syntax">Win32_ConsoleMode</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Win32_ConsoleMode</span><span class="plain-syntax"> & </span><span class="identifier-syntax">ENABLE_VIRTUAL_TERMINAL_PROCESSING</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SetConsoleMode</span><span class="plain-syntax">(</span><span class="identifier-syntax">cons</span><span class="plain-syntax">, </span><span class="identifier-syntax">Win32_ConsoleMode</span><span class="plain-syntax"> | </span><span class="identifier-syntax">ENABLE_VIRTUAL_TERMINAL_PROCESSING</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">WIN32CONS_RESET_MODE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ConsoleOutCP</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GetConsoleOutputCP</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">UINT</span><span class="plain-syntax"> </span><span class="identifier-syntax">newCP</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">loc</span><span class="plain-syntax"> = </span><a href="2-lcl.html#SP2" class="function-link"><span class="function-syntax">Locales::get</span></a><span class="plain-syntax">(</span><span class="constant-syntax">CONSOLE_LOCALE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">loc</span><span class="plain-syntax"> == </span><span class="constant-syntax">FILE_ENCODING_ISO_STRF</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">newCP</span><span class="plain-syntax"> = </span><span class="constant-syntax">28591</span><span class="plain-syntax">; </span><span class="comment-syntax"> ISO 8859-1 Latin</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">loc</span><span class="plain-syntax"> == </span><span class="constant-syntax">FILE_ENCODING_UTF8_STRF</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">newCP</span><span class="plain-syntax"> = </span><span class="constant-syntax">65001</span><span class="plain-syntax">; </span><span class="comment-syntax"> UTF-8</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">newCP</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) && </span><span class="identifier-syntax">SetConsoleOutputCP</span><span class="plain-syntax">(</span><span class="identifier-syntax">newCP</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> |= </span><span class="identifier-syntax">WIN32CONS_RESET_OUTCP</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Win32_ResetConsole</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">atexit</span><span class="plain-syntax">(</span><a href="1-wp.html#SP12" class="function-link"><span class="function-syntax">Platform::Win32_ResetConsole</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This paragraph is used only if PLATFORM_WINDOWS is defined.</li></ul>
|
||||
|
|
|
@ -81,7 +81,7 @@ operating system".
|
|||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">locales_unset</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">locale_settings</span><span class="plain-syntax">[</span><span class="identifier-syntax">NO_DEFINED_LOCALE_VALUES</span><span class="plain-syntax">];</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Locales::get</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Locales::get</span></span>:<br/><a href="2-lcl.html#SP4">§4</a><br/>Streams - <a href="2-str.html#SP22">§22</a>, <a href="2-str.html#SP23">§23</a>, <a href="2-str.html#SP32">§32</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Locales::get</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Locales::get</span></span>:<br/><a href="2-lcl.html#SP4">§4</a><br/>Windows Platform - <a href="1-wp.html#SP12">§12</a><br/>Streams - <a href="2-str.html#SP22">§22</a>, <a href="2-str.html#SP23">§23</a>, <a href="2-str.html#SP32">§32</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">L</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">NO_DEFINED_LOCALE_VALUES</span><span class="plain-syntax">)) </span><a href="3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"locale out of range"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">locales_unset</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-lcl.html#SP5" class="function-link"><span class="function-syntax">Locales::platform_locale</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">locale_settings</span><span class="plain-syntax">[</span><span class="identifier-syntax">L</span><span class="plain-syntax">] >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">locale_settings</span><span class="plain-syntax">[</span><span class="identifier-syntax">L</span><span class="plain-syntax">];</span>
|
||||
|
|
Binary file not shown.
|
@ -430,9 +430,9 @@ runs of a given colour, or give an if-X-then-Y rule:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">execute_block</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"runs of (%c+) {"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">colouring_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP12" class="function-link"><span class="function-syntax">Languages::new_rule</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNQUOTED_COLOUR</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">r</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNQUOTED_COLOUR</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::ne</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">I</span><span class="string-syntax">"unquoted"</span><span class="plain-syntax">)) </span><span class="identifier-syntax">r</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP15" class="function-link"><span class="function-syntax">Languages::colour</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">mr</span><span class="plain-syntax">.</span><span class="element-syntax">exp</span><span class="plain-syntax">[0], </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">execute_block</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP10" class="function-link"><span class="function-syntax">Languages::new_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax">, </span><span class="identifier-syntax">r</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">execute_block</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP10" class="function-link"><span class="function-syntax">Languages::new_block</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax">, (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">r</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">execute_block</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr</span><span class="plain-syntax">, </span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"instances of (%c+) {"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">colouring_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rule</span><span class="plain-syntax"> = </span><a href="4-pl.html#SP12" class="function-link"><span class="function-syntax">Languages::new_rule</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">state</span><span class="plain-syntax">-></span><span class="element-syntax">current_block</span><span class="plain-syntax">);</span>
|
||||
|
@ -533,8 +533,8 @@ little context before it (where available).
|
|||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">colouring_rule</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> the premiss:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sense</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">FALSE</span></span><span class="comment-syntax"> to negate the condition</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> for </span><span class="extract"><span class="extract-syntax">coloured C</span></span><span class="comment-syntax">, or else </span><span class="extract"><span class="extract-syntax">NOT_A_COLOUR</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_keyword_of_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> for </span><span class="extract"><span class="extract-syntax">keyword C</span></span><span class="comment-syntax">, or else </span><span class="extract"><span class="extract-syntax">NOT_A_COLOUR</span></span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> for </span><span class="extract"><span class="extract-syntax">coloured C</span></span><span class="comment-syntax">, or else </span><span class="extract"><span class="extract-syntax">NOT_A_COLOUR</span></span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_keyword_of_colour</span><span class="plain-syntax">; </span><span class="comment-syntax"> for </span><span class="extract"><span class="extract-syntax">keyword C</span></span><span class="comment-syntax">, or else </span><span class="extract"><span class="extract-syntax">NOT_A_COLOUR</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">match_text</span><span class="plain-syntax">; </span><span class="comment-syntax"> or length 0 to mean "anything"</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_prefix</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the </span><span class="extract"><span class="extract-syntax">*_RULE_PREFIX</span></span><span class="comment-syntax"> values above</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">match_regexp_text</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_ILDF_REGEXP_LENGTH</span><span class="plain-syntax">];</span>
|
||||
|
@ -671,7 +671,7 @@ little context before it (where available).
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">reserved_word</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">reserved_word</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::reserved</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Languages::reserved</span></span>:<br/><a href="4-pl.html#SP8_1">§8.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pl</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">reserved_word</span><span class="plain-syntax"> *</span><span class="function-syntax">Languages::reserved</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Languages::reserved</span></span>:<br/><a href="4-pl.html#SP8_1">§8.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">programming_language</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pl</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">reserved_word</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rw</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">rw</span><span class="plain-syntax">, </span><span class="reserved-syntax">reserved_word</span><span class="plain-syntax">, </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">reserved_words</span><span class="plain-syntax">)</span>
|
||||
|
@ -680,9 +680,9 @@ little context before it (where available).
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">reserved_word</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax">-></span><span class="element-syntax">word</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax">-></span><span class="element-syntax">colour</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax">-></span><span class="element-syntax">colour</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">rw</span><span class="plain-syntax">, </span><span class="reserved-syntax">reserved_word</span><span class="plain-syntax">, </span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">reserved_words</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP10" class="function-link"><span class="function-syntax">Analyser::mark_reserved_word</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">built_in_keywords</span><span class="plain-syntax">), </span><span class="identifier-syntax">rw</span><span class="plain-syntax">-></span><span class="element-syntax">word</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP10" class="function-link"><span class="function-syntax">Analyser::mark_reserved_word</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">pl</span><span class="plain-syntax">-></span><span class="element-syntax">built_in_keywords</span><span class="plain-syntax">), </span><span class="identifier-syntax">rw</span><span class="plain-syntax">-></span><span class="element-syntax">word</span><span class="plain-syntax">, (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -708,7 +708,7 @@ but which are not expressible in the syntax of this file.
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">UNQUOTED_COLOUR</span><span class="plain-syntax"> </span><span class="character-syntax">'_'</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::colour</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Languages::colour</span></span>:<br/><a href="4-pl.html#SP8_1">§8.1</a>, <a href="4-pl.html#SP8_2">§8.2</a>, <a href="4-pl.html#SP13_1">§13.1</a>, <a href="4-pl.html#SP13_2">§13.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="function-syntax">Languages::colour</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Languages::colour</span></span>:<br/><a href="4-pl.html#SP8_1">§8.1</a>, <a href="4-pl.html#SP8_2">§8.2</a>, <a href="4-pl.html#SP13_1">§13.1</a>, <a href="4-pl.html#SP13_2">§13.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_first_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">) != </span><span class="character-syntax">'!'</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP5" class="function-link"><span class="function-syntax">Errors::in_text_file</span></a><span class="plain-syntax">(</span><span class="string-syntax">"colour names must begin with !"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -422,7 +422,7 @@ rule across the whole snippet before moving on to the next.
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">match_keyword_of_colour</span><span class="plain-syntax"> != </span><span class="constant-syntax">NOT_A_COLOUR</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP26" class="function-link"><span class="function-syntax">Str::substr</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP10" class="function-link"><span class="function-syntax">Str::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">), </span><a href="../foundation-module/4-sm.html#SP10" class="function-link"><span class="function-syntax">Str::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">+1));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax"> = </span><a href="3-ta.html#SP10" class="function-link"><span class="function-syntax">Analyser::is_reserved_word</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">HT</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">match_keyword_of_colour</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rw</span><span class="plain-syntax"> = </span><a href="3-ta.html#SP10" class="function-link"><span class="function-syntax">Analyser::is_reserved_word</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">HT</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, (</span><span class="reserved-syntax">int</span><span class="plain-syntax">) </span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">match_keyword_of_colour</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rw</span><span class="plain-syntax"> == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rule</span><span class="plain-syntax">-></span><span class="element-syntax">match_colour</span><span class="plain-syntax"> != </span><span class="constant-syntax">NOT_A_COLOUR</span><span class="plain-syntax">) {</span>
|
||||
|
|
Loading…
Reference in a new issue