aboutsummaryrefslogtreecommitdiff
path: root/05
diff options
context:
space:
mode:
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}