Working on actually making a program
This commit is contained in:
26
program.c
26
program.c
@@ -31,22 +31,39 @@ int main(){
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct Token{
|
||||
U8 kind;
|
||||
U8 *str;
|
||||
S64 len;
|
||||
/*enum Kind{
|
||||
Number = 0,
|
||||
};*/
|
||||
}Token;
|
||||
|
||||
String kind_name(U8 kind){
|
||||
if((kind==0)){
|
||||
return LIT("<Number>");
|
||||
}
|
||||
else{
|
||||
return LIT("<Unknown>");
|
||||
}
|
||||
}
|
||||
|
||||
Bool is_numeric(U8 c){
|
||||
Bool result = ((c>=48)&&(c<=57));
|
||||
return result;
|
||||
}
|
||||
|
||||
void entry(){
|
||||
String string_to_lex = LIT("Identifier 2425525 Not_Number");
|
||||
Token token_array[32];
|
||||
U32 token_count;
|
||||
printf("printf", 32);
|
||||
S64 token_count = 0;
|
||||
Token t;
|
||||
for(S64 i = 0;(i<string_to_lex.len);(i+=1)){
|
||||
if(is_numeric((string_to_lex.str[i]))){
|
||||
(t.kind=0);
|
||||
(t.str=(&(string_to_lex.str[i])));
|
||||
(t.len=i);
|
||||
for(;is_numeric((string_to_lex.str[i]));){
|
||||
@@ -54,7 +71,10 @@ void entry(){
|
||||
}
|
||||
(t.len=(i-t.len));
|
||||
((token_array[(token_count++)])=t);
|
||||
(token_count+=1);
|
||||
}
|
||||
}
|
||||
for(S64 i = 0;(i<token_count);(i++)){
|
||||
Token *tk = (&(token_array[i]));
|
||||
printf("%.*s", ((S32 )tk->len), tk->str);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user