aboutsummaryrefslogtreecommitdiff
path: root/6
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-04-30 17:52:13 +0100
committerAkshay <[email protected]>2021-04-30 17:52:13 +0100
commit8a57bedc04fff7a92ef6d2762cfe5fc17050f021 (patch)
tree192ea2a1bd2eec0c0f84a9cb7adc9b10d005e1db /6
parent30047205e440e9ad8984e1830b8b819b5fe1f9f7 (diff)
add yacc programs
Diffstat (limited to '6')
-rw-r--r--6/main.l16
-rw-r--r--6/main.y28
2 files changed, 44 insertions, 0 deletions
diff --git a/6/main.l b/6/main.l
new file mode 100644
index 0000000..55dac30
--- /dev/null
+++ b/6/main.l
@@ -0,0 +1,16 @@
1%{
2#include "y.tab.h"
3#include <stdlib.h>
4%}
5
6%%
7
8a return A;
9b return B;
10. return yytext[0];
11\n return 0;
12%%
13
14int yywrap() {
15 return 1;
16}
diff --git a/6/main.y b/6/main.y
new file mode 100644
index 0000000..25005df
--- /dev/null
+++ b/6/main.y
@@ -0,0 +1,28 @@
1%{
2#include <stdio.h>
3#include <stdlib.h>
4int yylex();
5int yyerror(char *);
6%}
7
8%token A B ERR
9
10%%
11
12S:
13 A S B
14 |
15 ;
16
17%%
18
19int yyerror(char *s) {
20 printf("error: %s", s);
21 exit(0);
22}
23
24int main() {
25 yyparse();
26 printf("valid string\n");
27 return 0;
28}