Skip to content

Commit

Permalink
test: Include from libc.h in lib_usage.c example
Browse files Browse the repository at this point in the history
  • Loading branch information
keyvank committed Nov 30, 2024
1 parent a13fdd2 commit 267e14d
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 195 deletions.
25 changes: 3 additions & 22 deletions examples/lib_usage.c
Original file line number Diff line number Diff line change
@@ -1,24 +1,5 @@
void printf(char *, ...);
int strcmp(char *, char *);
void strcat(char *, char *);
void strcpy(char *, char *);
void *malloc(int);
void fprintf(FILE *, char *, ...);

typedef struct
{
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
} FILE;

FILE *fopen(char *, char *);
int fclose(FILE *);
#include "libc.h"
#include "libc.h"

int main()
{
Expand All @@ -29,7 +10,7 @@ int main()
strcat(c, b);
printf("%s\n", c);

FILE *file_ptr;
void *file_ptr;
file_ptr = fopen("output.txt", "w");
if (!file_ptr)
{
Expand Down
18 changes: 18 additions & 0 deletions examples/libc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#ifndef LIBC_H
#define LIBC_H

#define NULL 0
void printf(char *, ...);
int strcmp(char *, char *);
void strcat(char *, char *);
void strcpy(char *, char *);
void *malloc(int);
void sprintf(char *, char *, ...);
void fprintf(void *, char *, ...);
extern void *stdout;
extern void *stderr;
void *fopen(char *, char *);
int fclose(void *);
int fread(void *, int, int, void *);

#endif
4 changes: 4 additions & 0 deletions tests/output/lib_usage.c_asm_output.asm
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,18 @@ __temp_str_5 db `Error opening file!`, 0
__temp_str_6 db `Hello, World!\n`, 0
__main_size: equ 336
section .text
extern stdout
extern stderr
extern printf
extern strcmp
extern strcat
extern strcpy
extern malloc
extern sprintf
extern fprintf
extern fopen
extern fclose
extern fread
global main
main:
push rbp
Expand Down
119 changes: 9 additions & 110 deletions tests/output/lib_usage.c_lex_output.txt
Original file line number Diff line number Diff line change
@@ -1,112 +1,11 @@
TKN_VOID
TKN_ID(printf)
TKN_L_PAREN
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_DOTS
TKN_R_PAREN
TKN_SEMICOLON
TKN_INT
TKN_ID(strcmp)
TKN_L_PAREN
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_VOID
TKN_ID(strcat)
TKN_L_PAREN
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_VOID
TKN_ID(strcpy)
TKN_L_PAREN
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_VOID
TKN_STAR
TKN_ID(malloc)
TKN_L_PAREN
TKN_INT
TKN_R_PAREN
TKN_SEMICOLON
TKN_VOID
TKN_ID(fprintf)
TKN_L_PAREN
TKN_ID(FILE)
TKN_STAR
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_DOTS
TKN_R_PAREN
TKN_SEMICOLON
TKN_TYPEDEF
TKN_STRUCT
TKN_L_BRACE
TKN_CHAR
TKN_STAR
TKN_ID(_ptr)
TKN_SEMICOLON
TKN_INT
TKN_ID(_cnt)
TKN_SEMICOLON
TKN_CHAR
TKN_STAR
TKN_ID(_base)
TKN_SEMICOLON
TKN_INT
TKN_ID(_flag)
TKN_SEMICOLON
TKN_INT
TKN_ID(_file)
TKN_SEMICOLON
TKN_INT
TKN_ID(_charbuf)
TKN_SEMICOLON
TKN_INT
TKN_ID(_bufsiz)
TKN_SEMICOLON
TKN_CHAR
TKN_STAR
TKN_ID(_tmpfname)
TKN_SEMICOLON
TKN_R_BRACE
TKN_ID(FILE)
TKN_SEMICOLON
TKN_ID(FILE)
TKN_STAR
TKN_ID(fopen)
TKN_L_PAREN
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_INT
TKN_ID(fclose)
TKN_L_PAREN
TKN_ID(FILE)
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_DIRECTIVE:
TKN_ID(include)
TKN_LIT_STR(libc.h)
TKN_EOF
TKN_DIRECTIVE:
TKN_ID(include)
TKN_LIT_STR(libc.h)
TKN_EOF
TKN_INT
TKN_ID(main)
TKN_L_PAREN
Expand Down Expand Up @@ -159,7 +58,7 @@ TKN_COMMA
TKN_ID(c)
TKN_R_PAREN
TKN_SEMICOLON
TKN_ID(FILE)
TKN_VOID
TKN_STAR
TKN_ID(file_ptr)
TKN_SEMICOLON
Expand Down
65 changes: 34 additions & 31 deletions tests/output/lib_usage.c_prep_output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ TKN_INT
TKN_R_PAREN
TKN_SEMICOLON
TKN_VOID
TKN_ID(fprintf)
TKN_ID(sprintf)
TKN_L_PAREN
TKN_ID(FILE)
TKN_CHAR
TKN_STAR
TKN_COMMA
TKN_CHAR
Expand All @@ -56,40 +56,29 @@ TKN_COMMA
TKN_DOTS
TKN_R_PAREN
TKN_SEMICOLON
TKN_TYPEDEF
TKN_STRUCT
TKN_L_BRACE
TKN_CHAR
TKN_VOID
TKN_ID(fprintf)
TKN_L_PAREN
TKN_VOID
TKN_STAR
TKN_ID(_ptr)
TKN_SEMICOLON
TKN_INT
TKN_ID(_cnt)
TKN_SEMICOLON
TKN_COMMA
TKN_CHAR
TKN_STAR
TKN_ID(_base)
TKN_SEMICOLON
TKN_INT
TKN_ID(_flag)
TKN_SEMICOLON
TKN_INT
TKN_ID(_file)
TKN_SEMICOLON
TKN_INT
TKN_ID(_charbuf)
TKN_SEMICOLON
TKN_INT
TKN_ID(_bufsiz)
TKN_COMMA
TKN_DOTS
TKN_R_PAREN
TKN_SEMICOLON
TKN_CHAR
TKN_EXTERN
TKN_VOID
TKN_STAR
TKN_ID(_tmpfname)
TKN_ID(stdout)
TKN_SEMICOLON
TKN_R_BRACE
TKN_ID(FILE)
TKN_EXTERN
TKN_VOID
TKN_STAR
TKN_ID(stderr)
TKN_SEMICOLON
TKN_ID(FILE)
TKN_VOID
TKN_STAR
TKN_ID(fopen)
TKN_L_PAREN
Expand All @@ -103,7 +92,21 @@ TKN_SEMICOLON
TKN_INT
TKN_ID(fclose)
TKN_L_PAREN
TKN_ID(FILE)
TKN_VOID
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
TKN_INT
TKN_ID(fread)
TKN_L_PAREN
TKN_VOID
TKN_STAR
TKN_COMMA
TKN_INT
TKN_COMMA
TKN_INT
TKN_COMMA
TKN_VOID
TKN_STAR
TKN_R_PAREN
TKN_SEMICOLON
Expand Down Expand Up @@ -159,7 +162,7 @@ TKN_COMMA
TKN_ID(c)
TKN_R_PAREN
TKN_SEMICOLON
TKN_ID(FILE)
TKN_VOID
TKN_STAR
TKN_ID(file_ptr)
TKN_SEMICOLON
Expand Down
Loading

0 comments on commit 267e14d

Please sign in to comment.