aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/code_generator/code_generator.c10
-rw-r--r--src/compiler/lexer/lexer.h1
-rw-r--r--src/compiler/parser/parser.c7
-rw-r--r--src/compiler/parser/parser.h24
4 files changed, 19 insertions, 23 deletions
diff --git a/src/compiler/code_generator/code_generator.c b/src/compiler/code_generator/code_generator.c
index 0beca33..6236d34 100644
--- a/src/compiler/code_generator/code_generator.c
+++ b/src/compiler/code_generator/code_generator.c
@@ -106,7 +106,6 @@ bool nodeToInstruction(ParsedNode *node, Instruction **instructions,
case PARSED_TOKEN_EOL:
return nodeToInstruction(node->metadata, instructions, instructions_size,
instructions_inserted);
- break;
case PARSED_TOKEN_PRINT:
if (nodeToInstruction(node->metadata, instructions, instructions_size,
instructions_inserted)) {
@@ -120,7 +119,6 @@ bool nodeToInstruction(ParsedNode *node, Instruction **instructions,
} else {
return false;
}
- break;
case PARSED_TOKEN_VALUE_STRING: {
SizedString *string = nodeToString(node);
if (string == NULL) {
@@ -134,11 +132,11 @@ bool nodeToInstruction(ParsedNode *node, Instruction **instructions,
instructions_inserted);
return true;
}
- default:
- fprintf(stderr, "unexpected token %s\n",
- PARSED_TOKEN_STRINGS[node->token]);
- return false;
+ case PARSED_TOKEN_NONE:
+ case PARSED_TOKEN_ROOT:
}
+ fprintf(stderr, "unexpected token %s\n", PARSED_TOKEN_STRINGS[node->token]);
+ return false;
}
void insertInstruction(const Instruction instruction,
diff --git a/src/compiler/lexer/lexer.h b/src/compiler/lexer/lexer.h
index 7d60101..d6eef17 100644
--- a/src/compiler/lexer/lexer.h
+++ b/src/compiler/lexer/lexer.h
@@ -38,7 +38,6 @@ typedef struct Nodes {
} Nodes;
extern void printNodes(Nodes nodes);
-
extern void deleteNodes(Nodes nodes);
extern Nodes lexer(char const *restrict str);
diff --git a/src/compiler/parser/parser.c b/src/compiler/parser/parser.c
index c679d39..7a486d9 100644
--- a/src/compiler/parser/parser.c
+++ b/src/compiler/parser/parser.c
@@ -96,11 +96,11 @@ void _printParsedNode(const ParsedNode *parsedNode, int indent) {
case PARSED_TOKEN_VALUE_STRING:
printf("\n");
break;
- case PARSED_TOKEN_EOL:
+ case PARSED_TOKEN_EOL: {
EOLMetadata *metadata = parsedNode->metadata;
printf(",operand=\n");
_printParsedNode(metadata, indent + 1);
- break;
+ } break;
default:
fprintf(stderr, "bad parsed token %d at compiler line %d\n",
parsedNode->token, __LINE__);
@@ -140,10 +140,11 @@ void deleteParsedNode(ParsedNode *parsedNode) {
} break;
case PARSED_TOKEN_VALUE_STRING:
break;
- case PARSED_TOKEN_EOL:
+ case PARSED_TOKEN_EOL: {
EOLMetadata *metadata = parsedNode->metadata;
deleteParsedNode(metadata);
break;
+ }
default:
fprintf(stderr, "bad parsed token %d at compiler line %d\n",
parsedNode->token, __LINE__);
diff --git a/src/compiler/parser/parser.h b/src/compiler/parser/parser.h
index 006fc59..efabc8c 100644
--- a/src/compiler/parser/parser.h
+++ b/src/compiler/parser/parser.h
@@ -16,14 +16,9 @@ extern const char *PARSED_TOKEN_STRINGS[];
typedef struct ParseOrder {
bool ltr;
size_t size;
- Token tokens[10]; // TODO: change this
+ Token tokens[10]; // TODO: change this
} ParseOrder;
-typedef struct ScopeMetadata {
- struct ParsedNode **operands;
- size_t operands_size;
-} ScopeMetadata;
-
typedef struct ParsedNode {
char const *strBegin;
char const *strEnd;
@@ -32,31 +27,34 @@ typedef struct ParsedNode {
struct ParsedNode *parent;
} ParsedNode;
+typedef struct ScopeMetadata {
+ struct ParsedNode **operands;
+ size_t operands_size;
+} ScopeMetadata;
typedef ParsedNode PrintMetadata;
typedef ParsedNode EOLMetadata;
extern ParsedNode *newParsedNode(char const *strBegin, char const *strEnd,
ParsedToken token, void *metadata,
ParsedNode *parent);
-extern void _printParsedNode(const ParsedNode *parsedNode,int indent);
+extern void _printParsedNode(const ParsedNode *parsedNode, int indent);
extern void printParsedNode(const ParsedNode *parsedNode);
-extern ParsedNode *getUntilCommonFather(ParsedNode *parsedNode,ParsedNode *parent);
+extern ParsedNode *getUntilCommonFather(ParsedNode *parsedNode,
+ ParsedNode *parent);
extern void deleteParsedNode(ParsedNode *parsedNode);
extern ParsedNode *parser(Nodes lexedNodes);
extern ScopeMetadata *parserScope(Node *nodesBegin, Node *nodesEnd,
- ParsedNode *parent);
+ ParsedNode *parent);
extern ParsedNode *parseNode(Node *nodesBegin, Node *nodesEnd, Node *node,
ParsedNode *parent);
extern ParsedNode *parserPrint(Node *nodesBegin, Node *nodesEnd, Node *node,
ParsedNode *parent);
-
extern ParsedNode *parseParenthesis(Node *nodesBegin, Node *nodesEnd,
Node *node, ParsedNode *parent);
-
extern ParsedNode *parseString(Node *node, ParsedNode *parent);
-
-extern ParsedNode *parseEOL(Node *nodesBegin, Node *nodesEnd,Node *node, ParsedNode *parent);
+extern ParsedNode *parseEOL(Node *nodesBegin, Node *nodesEnd, Node *node,
+ ParsedNode *parent);