Compare commits

..

2 Commits

Author SHA1 Message Date
71ee935f7b Rename def to #def 2024-06-11 16:15:09 +05:00
1c9de73b91 Implement longer defines 2024-06-11 16:14:18 +05:00
4 changed files with 20 additions and 3 deletions

View File

@ -237,7 +237,7 @@ char* compile(tSyntaxElement* syntaxtree) {
tSyntaxElement* token = syntaxtree->content.syntax; tSyntaxElement* token = syntaxtree->content.syntax;
if (strcmp(token->content.string, "def") == 0) { if (strcmp(token->content.string, "#def") == 0) {
} else if (strcmp(token->content.string, "set") == 0) { } else if (strcmp(token->content.string, "set") == 0) {
compile_enter_tag(&result); compile_enter_tag(&result);

View File

@ -10,9 +10,14 @@ bool replace(tSyntaxElement* tree, tProcessingData* pd) {
free(tree->content.none); free(tree->content.none);
tSyntaxElement* clone = se_clone_no_next(pd->data.replace.replacewiththis, tree); tSyntaxElement* clone = se_clone(pd->data.replace.replacewiththis, tree);
tree->content = clone->content; tree->content = clone->content;
tree->type = clone->type; tree->type = clone->type;
if (clone->next != NULL) {
tSyntaxElement* tmp = se_find_last(clone);
tmp->next = tree->next;
tree->next = clone->next;
}
free(clone); free(clone);
@ -61,7 +66,7 @@ bool process_find(tSyntaxElement* tree, tProcessingData** p_pdata) {
tSyntaxElement* token = tree->content.syntax; tSyntaxElement* token = tree->content.syntax;
if (strcmp(token->content.string,"def") == 0 && if (strcmp(token->content.string,"#def") == 0 &&
token->next != NULL && token->next != NULL &&
token->next->next != NULL) { token->next->next != NULL) {

View File

@ -142,3 +142,13 @@ tSyntaxElement* se_clone_no_next(tSyntaxElement* syntaxelement, tSyntaxElement*
return clone; return clone;
} }
tSyntaxElement* se_find_last(tSyntaxElement* syntaxelement) {
tSyntaxElement* i = syntaxelement;
while (1)
if (i->next == NULL)
return i;
else
i = i->next;
}

View File

@ -47,4 +47,6 @@ tSyntaxElement* se_clone(tSyntaxElement*, tSyntaxElement*);
tSyntaxElement* se_clone_no_next(tSyntaxElement*, tSyntaxElement*); tSyntaxElement* se_clone_no_next(tSyntaxElement*, tSyntaxElement*);
tSyntaxElement* se_find_last(tSyntaxElement*);
#endif #endif