aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-04-16 05:32:24 +0100
committerAkshay <[email protected]>2021-04-16 05:32:24 +0100
commit5b54c1d51afad68d497a14d8c5e3a9fc852d5f20 (patch)
tree7049e5c50ed87b312fb9f11460c21fb3148b9e76
parenta83f7edacd5d4a72c29d836ec2338ffa23bec38a (diff)
add prog 4
-rw-r--r--.gitignore1
-rw-r--r--4/input5
-rw-r--r--4/main.l33
3 files changed, 39 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 03567fc..595a3c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
1outputs 1outputs
2*output*
diff --git a/4/input b/4/input
new file mode 100644
index 0000000..7f0cc0b
--- /dev/null
+++ b/4/input
@@ -0,0 +1,5 @@
1int main() {
2 int n;
3 printf("hello world");
4 scanf("%d", &n);
5}
diff --git a/4/main.l b/4/main.l
new file mode 100644
index 0000000..f768382
--- /dev/null
+++ b/4/main.l
@@ -0,0 +1,33 @@
1%{
2
3int scans = 0;
4int prints = 0;
5%}
6
7%%
8scanf {
9 scans++;
10 fprintf(yyout, "readf");
11};
12printf {
13 prints++;
14 fprintf(yyout, "writef");
15}
16; fprintf(yyout, "%s", yytext);
17\n fprintf(yyout, "\n");
18%%
19
20int main(void) {
21 yyin=fopen("4/input", "r+");
22 yyout=fopen("4/output", "w");
23 yylex();
24 printf("%d printf occurrences\n", prints);
25 printf("%d scanf occurrences\n", scans);
26}
27
28int yywrap()
29{
30exit(0);
31 return(1);
32}
33