Suppressed print statements during tests

This commit is contained in:
2022-09-05 05:30:06 +01:00
parent fb1ac71f42
commit dceb83e618
5 changed files with 26 additions and 14 deletions

View File

@@ -27,22 +27,20 @@ DONE: native functions
DONE: global functions _get, _set, _push, _pop, _length, clear available
DONE: change comma to colon in dictionary definition
DONE: Address circular references
TODO: are compounds shallow or deep copies? Deep copies
DONE: are compounds shallow or deep copies? Deep copies
DONE: third output stream, for lexer/parser/compiler/interpreter errors
DONE: Assertion-based test scripts
TODO: third output stream, for lexer/parser/compiler/interpreter errors
TODO: slice and dot notation around the _index function
TODO: Import/export keywords
TODO: slice and dot notation around the builtin _index function
TODO: ternary operator
TODO: Nullish types
TODO: Nullish types?
TODO: A way to check the type of a variable (typeOf keyword)
TODO: a = b = c = 1; ?
TODO: Assertion-based test scripts
TODO: standard library
TODO: external runner library
TODO: document how it all works
TODO: better and more consistent error messages
TODO: external script runner library
TODO: document how it all works - book?
TODO: maximum recursion/function depth

View File

@@ -184,7 +184,7 @@ static int writeNodeCompoundToCache(Compiler* compiler, Node* node) {
freeLiteral(literal);
}
else {
fprintf(stderr, ERROR "[Internal] Unrecognized compound type in writeNodeCompoundToCache()" RESET);
fprintf(stderr, ERROR "[internal] Unrecognized compound type in writeNodeCompoundToCache()" RESET);
}
return index;
@@ -279,7 +279,7 @@ static void writeCompilerWithJumps(Compiler* compiler, Node* node, void* breakAd
//determine node type
switch(node->type) {
case NODE_ERROR: {
fprintf(stderr, ERROR "[Internal] NODE_ERROR encountered in writeCompilerWithJumps()\n" RESET);
fprintf(stderr, ERROR "[internal] NODE_ERROR encountered in writeCompilerWithJumps()\n" RESET);
compiler->bytecode[compiler->count++] = OP_EOF; //1 byte
}
break;
@@ -338,7 +338,7 @@ static void writeCompilerWithJumps(Compiler* compiler, Node* node, void* breakAd
break;
case NODE_PAIR:
fprintf(stderr, ERROR "[Internal] NODE_PAIR encountered in writeCompilerWithJumps()\n" RESET);
fprintf(stderr, ERROR "[internal] NODE_PAIR encountered in writeCompilerWithJumps()\n" RESET);
break;
case NODE_VAR_DECL: {

View File

@@ -308,6 +308,7 @@ static void trim(char** s, int* l) { //all this to remove a newline?
while(**s && isspace( **(unsigned char**)(s)) ) { (*s)++; (*l)--; }
}
//for debugging
void printToken(Token* token) {
if (token->type == TOKEN_ERROR) {
printf(ERROR "Error\t%d\t%.*s\n" RESET, token->line, token->length, token->lexeme);

View File

@@ -22,4 +22,5 @@ typedef struct {
void initLexer(Lexer* lexer, char* source);
Token scanLexer(Lexer* lexer);
//for debugging
void printToken(Token* token);

View File

@@ -11,7 +11,12 @@
#include <stdlib.h>
#include <string.h>
//IO functions
//supress the print output
static void noPrintFn(const char* output) {
//NO OP
}
//compilation functions
char* readFile(char* path, size_t* fileSize) {
FILE* file = fopen(path, "rb");
@@ -86,6 +91,10 @@ unsigned char* compileString(char* source, size_t* size) {
void runBinary(unsigned char* tb, size_t size) {
Interpreter interpreter;
initInterpreter(&interpreter);
//NOTE: supress print output for testing
setInterpreterPrint(&interpreter, noPrintFn);
runInterpreter(&interpreter, tb, size);
freeInterpreter(&interpreter);
}
@@ -138,6 +147,9 @@ int main() {
int size = 0;
unsigned char* bytecode = collateCompiler(&compiler, &size);
//NOTE: supress print output for testing
setInterpreterPrint(&interpreter, noPrintFn);
//run
runInterpreter(&interpreter, bytecode, size);