aboutsummaryrefslogtreecommitdiff
path: root/05
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-04-30 17:55:19 +0100
committerAkshay <[email protected]>2021-04-30 17:55:19 +0100
commitda1764a9f839e1d29b2bee12d35534f71f05c6ff (patch)
treed410c2191e571f9e6945ed88afd3faa1175675b3 /05
parent9ff0cec8b507d9164d8828dcb2a87012e140fdf5 (diff)
law & order
Diffstat (limited to '05')
-rw-r--r--05/input5
-rw-r--r--05/main.l24
2 files changed, 29 insertions, 0 deletions
diff --git a/05/input b/05/input
new file mode 100644
index 0000000..8be510e
--- /dev/null
+++ b/05/input
@@ -0,0 +1,5 @@
1int main() {
2 int one, two, three;
3 three = two + one;
4 printf(three);
5}
diff --git a/05/main.l b/05/main.l
new file mode 100644
index 0000000..ee13053
--- /dev/null
+++ b/05/main.l
@@ -0,0 +1,24 @@
1%{
2 int k = 0;
3 int o = 0;
4 int i = 0;
5%}
6
7%%
8int|main|printf|scanf|char|if|else|for|switch|case k++;
9[+*/%&=] o++;
10[a-zA-Z_][a-zA-Z0-9_]* i++;
11. ;
12\n ;
13%%
14
15int main(void) {
16 yylex();
17 printf("%d keywords\n", k);
18 printf("%d operators\n", o);
19 printf("%d identifiers\n", i);
20}
21
22int yywrap() {
23 return 1;
24}