Function headers, ANSI defines, and enums for raising internal warnings and errors.  
More...
Go to the source code of this file.
|  | 
| struct | LogInfo | 
|  | Maps LogLevels to text and color for displaying.  More... 
 | 
|  | 
|  | 
| enum | LogLevel { LOG_NONE
, LOG_DEBUG
, LOG_INFO
, LOG_WARNING
,
 LOG_ERROR
, LOG_CRITICAL
 }
 | 
|  | Severity levels of logging statements emitted by the compiler.  More... 
 | 
|  | 
| enum | ReturnCode { RC_OK
, RC_ERROR
, RC_SYNTAX_ERROR
, RC_MEMORY_ERROR
,
 RC_FILE_ERROR
, RC_COMPILER_ERROR
, RC_IDENTIFIER_ERROR
, RC_ARG_ERROR
 }
 | 
|  | Return codes used in different scenarios.  More... 
 | 
|  | 
|  | 
| void | fatal (ReturnCode rc, const char *fmt,...) | 
|  | Raises a fatal error that will exit the compiler.  More... 
 | 
|  | 
| void | syntax_error (char *fn, int line_number, int char_number, const char *fmt,...) | 
|  | Raises a fatal syntax error.  More... 
 | 
|  | 
| void | identifier_error (char *fn, int line_number, int char_number, const char *fmt,...) | 
|  | Raises a fatal identifier error.  More... 
 | 
|  | 
| void | purple_log (LogLevel level, const char *fmt,...) | 
|  | Raises a non-fatal logging statement.  More... 
 | 
|  | 
Function headers, ANSI defines, and enums for raising internal warnings and errors. 
- Author
- Charles Averill 
- Date
- 08-Sep-2022 
◆ ANSI_BOLD
      
        
          | #define ANSI_BOLD   "\033[1m" | 
      
 
 
◆ ANSI_ORANGE
      
        
          | #define ANSI_ORANGE   "\033[38:5:208m" | 
      
 
ANSI code for orange text 
 
 
◆ ANSI_RED
      
        
          | #define ANSI_RED   "\033[38:5:196m" | 
      
 
 
◆ ANSI_RESET
      
        
          | #define ANSI_RESET   "\033[0m" | 
      
 
ANSI code for default text style 
 
 
◆ ANSI_YELLOW
      
        
          | #define ANSI_YELLOW   "\033[38:5:178m" | 
      
 
ANSI code for yellow text 
 
 
◆ ERROR_ORANGE
Combination of ANSI codes for orange errors 
 
 
◆ ERROR_RED
Combination of ANSI codes for red errors 
 
 
◆ ERROR_YELLOW
Combination of ANSI codes for yellow errors 
 
 
◆ LogLevel
Severity levels of logging statements emitted by the compiler. 
| Enumerator | 
|---|
| LOG_NONE |  | 
| LOG_DEBUG |  | 
| LOG_INFO |  | 
| LOG_WARNING |  | 
| LOG_ERROR |  | 
| LOG_CRITICAL |  | 
 
 
◆ ReturnCode
Return codes used in different scenarios. 
| Enumerator | 
|---|
| RC_OK |  | 
| RC_ERROR |  | 
| RC_SYNTAX_ERROR |  | 
| RC_MEMORY_ERROR |  | 
| RC_FILE_ERROR |  | 
| RC_COMPILER_ERROR |  | 
| RC_IDENTIFIER_ERROR |  | 
| RC_ARG_ERROR |  | 
 
 
◆ fatal()
      
        
          | void fatal | ( | ReturnCode | rc, | 
        
          |  |  | const char * | fmt, | 
        
          |  |  |  | ... | 
        
          |  | ) |  |  | 
      
 
Raises a fatal error that will exit the compiler. 
- Parameters
- 
  
    | rc | Return code to exit with |  | fmt | Format string for printed error |  | ... | Varargs for printed error |  
 
 
 
◆ identifier_error()
      
        
          | void identifier_error | ( | char * | fn, | 
        
          |  |  | int | line_number, | 
        
          |  |  | int | char_number, | 
        
          |  |  | const char * | fmt, | 
        
          |  |  |  | ... | 
        
          |  | ) |  |  | 
      
 
Raises a fatal identifier error. 
- Parameters
- 
  
    | fn | Filename in which identifier error occurs |  | line_number | Line number on which identifier error occurs |  | char_number | Character numbre on which syntax error occurs |  | fmt | Format string for details printed before fatal error |  | ... | Varargs for details printed before fatal error |  
 
 
 
◆ purple_log()
      
        
          | void purple_log | ( | LogLevel | level, | 
        
          |  |  | const char * | fmt, | 
        
          |  |  |  | ... | 
        
          |  | ) |  |  | 
      
 
Raises a non-fatal logging statement. 
- Parameters
- 
  
    | level | Severity of statement |  | fmt | Format string for printed statement |  | ... | Varargs for printed statement |  
 
 
 
◆ syntax_error()
      
        
          | void syntax_error | ( | char * | fn, | 
        
          |  |  | int | line_number, | 
        
          |  |  | int | char_number, | 
        
          |  |  | const char * | fmt, | 
        
          |  |  |  | ... | 
        
          |  | ) |  |  | 
      
 
Raises a fatal syntax error. 
- Parameters
- 
  
    | fn | Filename in which syntax error occurs |  | line_number | Line number on which syntax error occurs |  | char_number | Character numbre on which syntax error occurs |  | fmt | Format string for details printed before fatal error |  | ... | Varargs for details printed before fatal error |  
 
 
 
◆ logInfoLevels
Initial value:= {
#define ANSI_BOLD
Definition: logging.h:14
#define ANSI_ORANGE
Definition: logging.h:18
#define ANSI_RED
Definition: logging.h:16
@ LOG_CRITICAL
Definition: logging.h:41
@ LOG_ERROR
Definition: logging.h:40
@ LOG_INFO
Definition: logging.h:38
@ LOG_NONE
Definition: logging.h:36
@ LOG_WARNING
Definition: logging.h:39
@ LOG_DEBUG
Definition: logging.h:37
#define ANSI_YELLOW
Definition: logging.h:20
#define ANSI_RESET
Definition: logging.h:22
Collection of LogInfos for standard logging purposes. 
 
 
◆ returnCodeStrings
  
  | 
        
          | const char* returnCodeStrings[] |  | static | 
 
Initial value:= {
    "OK",         "ERROR",          "SYNTAX ERROR",     "MEMORY ERROR",
    "FILE ERROR", "COMPILER ERROR", "IDENTIFIER ERROR", "ARGUMENT ERROR"}
String representation of return codes.