a
This commit is contained in:
parent
5f2511e0f2
commit
883f7dad9c
1 changed files with 18 additions and 4 deletions
22
src/parser.c
22
src/parser.c
|
@ -22,13 +22,25 @@ i32 parenth_stack[256];
|
||||||
i32 parenth_d;
|
i32 parenth_d;
|
||||||
|
|
||||||
// Does the final transformation -> recursion end
|
// Does the final transformation -> recursion end
|
||||||
int parse_statement_final(StatementStack *stack, Statement *parent, char *str){
|
int parse_statement_final(ASTStack *stack){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recursively extracts statements
|
// Recursively extracts statements
|
||||||
int parse_statement(StatementStack *stack, Statement *parent, char *str){
|
int parse_statement(ASTStack *stack){
|
||||||
|
i32 curr = stack->curr_statement;
|
||||||
|
char **curr_pos = &stack->pos_stack[curr];
|
||||||
|
char ch = ' ';
|
||||||
|
do {
|
||||||
|
switch(ch){
|
||||||
|
case '(':
|
||||||
|
parenth_stack[parenth_d++] = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ch = **curr_pos;
|
||||||
|
} while(ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
ASTStack *parse(char *text){
|
ASTStack *parse(char *text){
|
||||||
|
@ -39,8 +51,10 @@ ASTStack *parse(char *text){
|
||||||
}
|
}
|
||||||
|
|
||||||
i32 ret = 0;
|
i32 ret = 0;
|
||||||
|
stack->pos_stack[0] = text;
|
||||||
|
stack->statements[0] = NULL;
|
||||||
do {
|
do {
|
||||||
ret = parse_statement(stack, NULL, text);
|
ret = parse_statement(stack);
|
||||||
} while(!ret);
|
} while(!ret);
|
||||||
|
|
||||||
return stack;
|
return stack;
|
||||||
|
|
Loading…
Add table
Reference in a new issue