aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/parser')
-rw-r--r--src/compiler/parser/parser.c7
-rw-r--r--src/compiler/parser/parser.h24
2 files changed, 15 insertions, 16 deletions
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);