summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/ast-tree.c36
-rw-r--r--src/compiler/ast-tree.h2
-rw-r--r--src/compiler/lexer.c8
-rw-r--r--src/compiler/lexer.h2
-rw-r--r--src/compiler/parser.c24
-rw-r--r--src/compiler/parser.h4
6 files changed, 38 insertions, 38 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index 678c533..6efdc6a 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -109,7 +109,7 @@ AstTree AST_TREE_VOID_VALUE = {
const char *AST_TREE_TOKEN_STRINGS[] = {
"AST_TREE_TOKEN_FUNCTION",
- "AST_TREE_TOKEN_KEYWORD_PRINT_U64",
+ "AST_TREE_TOKEN_KEYWORD_PUTC",
"AST_TREE_TOKEN_KEYWORD_RETURN",
"AST_TREE_TOKEN_KEYWORD_IF",
"AST_TREE_TOKEN_KEYWORD_WHILE",
@@ -239,7 +239,7 @@ void astTreePrint(const AstTree *tree, int indent) {
case AST_TREE_TOKEN_OPERATOR_DEREFERENCE:
case AST_TREE_TOKEN_OPERATOR_PLUS:
case AST_TREE_TOKEN_OPERATOR_MINUS:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_COMPTIME: {
AstTreeSingleChild *metadata = tree->metadata;
printf(",\n");
@@ -607,7 +607,7 @@ void astTreeDestroy(AstTree tree) {
case AST_TREE_TOKEN_OPERATOR_DEREFERENCE:
case AST_TREE_TOKEN_OPERATOR_PLUS:
case AST_TREE_TOKEN_OPERATOR_MINUS:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_COMPTIME: {
AstTreeSingleChild *metadata = tree.metadata;
astTreeDelete(metadata);
@@ -947,7 +947,7 @@ AstTree *copyAstTreeBack(AstTree *tree, AstTreeVariables oldVariables[],
case AST_TREE_TOKEN_OPERATOR_DEREFERENCE:
case AST_TREE_TOKEN_OPERATOR_PLUS:
case AST_TREE_TOKEN_OPERATOR_MINUS:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_COMPTIME: {
AstTreeSingleChild *metadata = tree->metadata;
AstTreeSingleChild *new_metadata =
@@ -1289,7 +1289,7 @@ AstTreeRoot *makeAstTree(ParserNode *parsedRoot) {
case PARSER_TOKEN_KEYWORD_STRUCT:
goto AFTER_SWITCH;
case PARSER_TOKEN_ROOT:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_CONSTANT:
case PARSER_TOKEN_VARIABLE:
@@ -1477,7 +1477,7 @@ AstTree *astTreeParse(ParserNode *parserNode, AstTreeHelper *helper) {
return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_VALUE_NULL);
case PARSER_TOKEN_KEYWORD_UNDEFINED:
return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_VALUE_UNDEFINED);
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
return astTreeParsePrintU64(parserNode, helper);
case PARSER_TOKEN_KEYWORD_RETURN:
return astTreeParseReturn(parserNode, helper);
@@ -1680,7 +1680,7 @@ AstTree *astTreeParseFunction(ParserNode *parserNode, AstTreeHelper *p_helper) {
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
case PARSER_TOKEN_TYPE_BOOL:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_KEYWORD_COMPTIME:
case PARSER_TOKEN_KEYWORD_STRUCT:
@@ -1919,7 +1919,7 @@ AstTree *astTreeParsePrintU64(ParserNode *parserNode, AstTreeHelper *helper) {
return NULL;
}
- return newAstTree(AST_TREE_TOKEN_KEYWORD_PRINT_U64,
+ return newAstTree(AST_TREE_TOKEN_KEYWORD_PUTC,
(AstTreeSingleChild *)operand, NULL, parserNode->str_begin,
parserNode->str_end);
}
@@ -2227,7 +2227,7 @@ AstTree *astTreeParseCurlyBracket(ParserNode *parserNode,
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
case PARSER_TOKEN_TYPE_BOOL:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_KEYWORD_COMPTIME:
case PARSER_TOKEN_KEYWORD_STRUCT:
@@ -2462,7 +2462,7 @@ bool isConst(AstTree *tree) {
return true;
}
case AST_TREE_TOKEN_KEYWORD_WHILE:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_VARIABLE_DEFINE:
case AST_TREE_TOKEN_OPERATOR_ASSIGN:
@@ -2561,7 +2561,7 @@ bool isConstByValue(AstTree *tree) {
return true;
}
case AST_TREE_TOKEN_KEYWORD_WHILE:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_VARIABLE_DEFINE:
case AST_TREE_TOKEN_OPERATOR_ASSIGN:
@@ -2714,7 +2714,7 @@ AstTree *makeTypeOf(AstTree *value) {
}
case AST_TREE_TOKEN_VALUE_OBJECT:
case AST_TREE_TOKEN_VARIABLE_DEFINE:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_KEYWORD_IF:
case AST_TREE_TOKEN_KEYWORD_WHILE:
@@ -2749,7 +2749,7 @@ bool typeIsEqual(AstTree *type0, AstTree *type1) {
bool typeIsEqualBack(const AstTree *type0, const AstTree *type1) {
switch (type0->token) {
case AST_TREE_TOKEN_FUNCTION:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_KEYWORD_IF:
case AST_TREE_TOKEN_KEYWORD_WHILE:
@@ -2921,7 +2921,7 @@ AstTree *getValue(AstTree *tree) {
case AST_TREE_TOKEN_FUNCTION: {
return tree;
}
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_VARIABLE_DEFINE:
case AST_TREE_TOKEN_NONE:
@@ -3045,7 +3045,7 @@ bool isCircularDependenciesBack(AstTreeHelper *helper,
return false;
}
case AST_TREE_TOKEN_SCOPE:
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
case AST_TREE_TOKEN_KEYWORD_RETURN:
case AST_TREE_TOKEN_VARIABLE_DEFINE:
case AST_TREE_TOKEN_KEYWORD_IF:
@@ -3162,7 +3162,7 @@ bool setAllTypes(AstTree *tree, AstTreeSetTypesHelper helper,
return setTypesValueObject(tree, helper);
case AST_TREE_TOKEN_FUNCTION:
return setTypesFunction(tree, helper);
- case AST_TREE_TOKEN_KEYWORD_PRINT_U64:
+ case AST_TREE_TOKEN_KEYWORD_PUTC:
return setTypesPrintU64(tree, helper);
case AST_TREE_TOKEN_KEYWORD_RETURN:
return setTypesReturn(tree, helper, function);
@@ -3438,12 +3438,12 @@ bool setTypesFunction(AstTree *tree, AstTreeSetTypesHelper helper) {
bool setTypesPrintU64(AstTree *tree, AstTreeSetTypesHelper _helper) {
AstTreeSingleChild *metadata = tree->metadata;
AstTreeSetTypesHelper helper = {
- .lookingType = &AST_TREE_U64_TYPE,
+ .lookingType = &AST_TREE_U8_TYPE,
.treeHelper = _helper.treeHelper,
};
if (!setAllTypes(metadata, helper, NULL)) {
return false;
- } else if (!typeIsEqual(metadata->type, &AST_TREE_U64_TYPE)) {
+ } else if (!typeIsEqual(metadata->type, &AST_TREE_U8_TYPE)) {
printError(tree->str_begin, tree->str_end, "Type mismatch");
return false;
} else {
diff --git a/src/compiler/ast-tree.h b/src/compiler/ast-tree.h
index fb708af..3ada2df 100644
--- a/src/compiler/ast-tree.h
+++ b/src/compiler/ast-tree.h
@@ -8,7 +8,7 @@
typedef enum AstTreeToken {
AST_TREE_TOKEN_FUNCTION,
- AST_TREE_TOKEN_KEYWORD_PRINT_U64,
+ AST_TREE_TOKEN_KEYWORD_PUTC,
AST_TREE_TOKEN_KEYWORD_RETURN,
AST_TREE_TOKEN_KEYWORD_IF,
AST_TREE_TOKEN_KEYWORD_WHILE,
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c
index 43ea4c1..9a8d1a4 100644
--- a/src/compiler/lexer.c
+++ b/src/compiler/lexer.c
@@ -28,7 +28,7 @@ const char *LEXER_TOKEN_STRINGS[] = {
"LEXER_TOKEN_KEYWORD_F64",
"LEXER_TOKEN_KEYWORD_F128",
"LEXER_TOKEN_KEYWORD_BOOL",
- "LEXER_TOKEN_KEYWORD_PRINT_U64",
+ "LEXER_TOKEN_KEYWORD_PUTC",
"LEXER_TOKEN_KEYWORD_RETURN",
"LEXER_TOKEN_KEYWORD_TRUE",
"LEXER_TOKEN_KEYWORD_FALSE",
@@ -122,7 +122,7 @@ const char *LEXER_KEYWORD_STRINGS[] = {
#ifdef FLOAT_16_SUPPORT
"f16",
#endif
- "f32", "f64", "f128", "bool", "print_u64",
+ "f32", "f64", "f128", "bool", "putc",
"return", "true", "false", "if", "else",
"while", "comptime", "null", "struct", "undefined",
};
@@ -137,7 +137,7 @@ const LexerToken LEXER_KEYWORD_TOKENS[] = {
#endif
LEXER_TOKEN_KEYWORD_F32, LEXER_TOKEN_KEYWORD_F64,
LEXER_TOKEN_KEYWORD_F128, LEXER_TOKEN_KEYWORD_BOOL,
- LEXER_TOKEN_KEYWORD_PRINT_U64, LEXER_TOKEN_KEYWORD_RETURN,
+ LEXER_TOKEN_KEYWORD_PUTC, LEXER_TOKEN_KEYWORD_RETURN,
LEXER_TOKEN_KEYWORD_TRUE, LEXER_TOKEN_KEYWORD_FALSE,
LEXER_TOKEN_KEYWORD_IF, LEXER_TOKEN_KEYWORD_ELSE,
LEXER_TOKEN_KEYWORD_WHILE, LEXER_TOKEN_KEYWORD_COMPTIME,
@@ -309,7 +309,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter,
case LEXER_TOKEN_KEYWORD_F64:
case LEXER_TOKEN_KEYWORD_F128:
case LEXER_TOKEN_KEYWORD_BOOL:
- case LEXER_TOKEN_KEYWORD_PRINT_U64:
+ case LEXER_TOKEN_KEYWORD_PUTC:
case LEXER_TOKEN_KEYWORD_RETURN:
case LEXER_TOKEN_KEYWORD_TRUE:
case LEXER_TOKEN_KEYWORD_FALSE:
diff --git a/src/compiler/lexer.h b/src/compiler/lexer.h
index 42f7aa8..80cd914 100644
--- a/src/compiler/lexer.h
+++ b/src/compiler/lexer.h
@@ -23,7 +23,7 @@ typedef enum LexerToken {
LEXER_TOKEN_KEYWORD_F64,
LEXER_TOKEN_KEYWORD_F128,
LEXER_TOKEN_KEYWORD_BOOL,
- LEXER_TOKEN_KEYWORD_PRINT_U64,
+ LEXER_TOKEN_KEYWORD_PUTC,
LEXER_TOKEN_KEYWORD_RETURN,
LEXER_TOKEN_KEYWORD_TRUE,
LEXER_TOKEN_KEYWORD_FALSE,
diff --git a/src/compiler/parser.c b/src/compiler/parser.c
index 8df9b2d..78dc18f 100644
--- a/src/compiler/parser.c
+++ b/src/compiler/parser.c
@@ -38,7 +38,7 @@ const char *PARSER_TOKEN_STRINGS[] = {
"PARSER_TOKEN_TYPE_F64",
"PARSER_TOKEN_TYPE_F128",
- "PARSER_TOKEN_KEYWORD_PRINT_U64",
+ "PARSER_TOKEN_KEYWORD_PUTC",
"PARSER_TOKEN_KEYWORD_RETURN",
"PARSER_TOKEN_KEYWORD_IF",
"PARSER_TOKEN_KEYWORD_WHILE",
@@ -158,7 +158,7 @@ static const ParserOrder PARSER_ORDER[] = {
},
{
.ltr = false,
- ORDER_ARRAY(LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_PRINT_U64,
+ ORDER_ARRAY(LEXER_TOKEN_KEYWORD_RETURN, LEXER_TOKEN_KEYWORD_PUTC,
LEXER_TOKEN_KEYWORD_COMPTIME, ),
},
{
@@ -270,7 +270,7 @@ void parserNodePrint(const ParserNode *node, int indent) {
case PARSER_TOKEN_OPERATOR_DEREFERENCE:
case PARSER_TOKEN_OPERATOR_PLUS:
case PARSER_TOKEN_OPERATOR_MINUS:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_COMPTIME:
case PARSER_TOKEN_SYMBOL_COMMA:
case PARSER_TOKEN_SYMBOL_EOL: {
@@ -516,7 +516,7 @@ void parserNodeDelete(ParserNode *node) {
case PARSER_TOKEN_OPERATOR_DEREFERENCE:
case PARSER_TOKEN_OPERATOR_PLUS:
case PARSER_TOKEN_OPERATOR_MINUS:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_COMPTIME:
case PARSER_TOKEN_SYMBOL_COMMA:
case PARSER_TOKEN_SYMBOL_EOL: {
@@ -739,8 +739,8 @@ ParserNode *parseNode(LexerNode *node, LexerNode *begin, LexerNode *end,
return parserNoMetadata(node, parent, PARSER_TOKEN_KEYWORD_NULL);
case LEXER_TOKEN_KEYWORD_UNDEFINED:
return parserNoMetadata(node, parent, PARSER_TOKEN_KEYWORD_UNDEFINED);
- case LEXER_TOKEN_KEYWORD_PRINT_U64:
- return parserPrintU64(node, end, parent);
+ case LEXER_TOKEN_KEYWORD_PUTC:
+ return parserPutc(node, end, parent);
case LEXER_TOKEN_KEYWORD_RETURN:
return parserReturn(node, end, parent);
case LEXER_TOKEN_KEYWORD_TRUE:
@@ -943,7 +943,7 @@ ParserNode *parserNoMetadata(LexerNode *node, ParserNode *parent,
newParserNode(token, node->str_begin, node->str_end, NULL, parent);
}
-ParserNode *parserPrintU64(LexerNode *node, LexerNode *end,
+ParserNode *parserPutc(LexerNode *node, LexerNode *end,
ParserNode *parent) {
LexerNode *afterNode = node + 1;
if (afterNode >= end) {
@@ -961,7 +961,7 @@ ParserNode *parserPrintU64(LexerNode *node, LexerNode *end,
}
return operand->parent = node->parserNode = newParserNode(
- PARSER_TOKEN_KEYWORD_PRINT_U64, node->str_begin, node->str_end,
+ PARSER_TOKEN_KEYWORD_PUTC, node->str_begin, node->str_end,
(ParserNodeSingleChildMetadata *)operand, parent);
}
@@ -1268,7 +1268,7 @@ ParserNode *parserFunction(LexerNode *node, LexerNode *begin, LexerNode *end,
case PARSER_TOKEN_TYPE_F128:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_KEYWORD_STRUCT:
case PARSER_TOKEN_CONSTANT:
@@ -1702,7 +1702,7 @@ bool isExpression(ParserNode *node) {
case PARSER_TOKEN_SYMBOL_PARENTHESIS:
case PARSER_TOKEN_FUNCTION_DEFINITION:
case PARSER_TOKEN_FUNCTION_CALL:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_OPERATOR_ACCESS:
case PARSER_TOKEN_OPERATOR_ASSIGN:
@@ -1809,7 +1809,7 @@ bool isType(ParserNode *node) {
case PARSER_TOKEN_VALUE_FLOAT:
case PARSER_TOKEN_VALUE_BOOL:
case PARSER_TOKEN_VALUE_CHAR:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_OPERATOR_ASSIGN:
case PARSER_TOKEN_OPERATOR_SUM_ASSIGN:
@@ -1901,7 +1901,7 @@ bool isValue(ParserNode *node) {
case PARSER_TOKEN_SYMBOL_EOL:
case PARSER_TOKEN_SYMBOL_CURLY_BRACKET:
case PARSER_TOKEN_SYMBOL_COMMA:
- case PARSER_TOKEN_KEYWORD_PRINT_U64:
+ case PARSER_TOKEN_KEYWORD_PUTC:
case PARSER_TOKEN_KEYWORD_RETURN:
case PARSER_TOKEN_KEYWORD_WHILE:
return false;
diff --git a/src/compiler/parser.h b/src/compiler/parser.h
index cb7af45..e55ee22 100644
--- a/src/compiler/parser.h
+++ b/src/compiler/parser.h
@@ -34,7 +34,7 @@ typedef enum ParserToken {
PARSER_TOKEN_TYPE_F64,
PARSER_TOKEN_TYPE_F128,
- PARSER_TOKEN_KEYWORD_PRINT_U64,
+ PARSER_TOKEN_KEYWORD_PUTC,
PARSER_TOKEN_KEYWORD_RETURN,
PARSER_TOKEN_KEYWORD_IF,
PARSER_TOKEN_KEYWORD_WHILE,
@@ -177,7 +177,7 @@ LexerNode *getNextLexerNodeUsingCommonParent(LexerNode *node, LexerNode *end,
ParserNode *parserNoMetadata(LexerNode *node, ParserNode *parent,
ParserToken token);
-ParserNode *parserPrintU64(LexerNode *node, LexerNode *end, ParserNode *parent);
+ParserNode *parserPutc(LexerNode *node, LexerNode *end, ParserNode *parent);
ParserNode *parserReturn(LexerNode *node, LexerNode *end, ParserNode *parent);
ParserNode *parserNumber(LexerNode *node, ParserNode *parent);
ParserNode *parserChar(LexerNode *node, ParserNode *parent);