Skip to content
Related Articles

Related Articles

YACC program which accept strings that starts and ends with 0 or 1
  • Last Updated : 06 May, 2019

Problem: Write a YACC program which accept strings that starts and ends with Zero or One

Explanation:
YACC (Yet another Compiler-Compiler) is the standard parser generator for the Unix operating system. An open source program, yacc generates code for the parser in the C programming language. The acronym is usually rendered in lowercase but is occasionally seen as YACC or Yacc.

Examples:

Input: 001100
Output: Sequence Accepted

Input: 1001001
Output: Sequence Accepted

Input: 0011101
Output: Sequence Rejected

Input: 100110
Output: Sequence Rejected 

Lexical Analyzer Source Code :

filter_none

edit
close

play_arrow

link
brightness_4
code

%{
  /* Definition section */
  extern int yylval;
%}
  
/* Rule Section */
%%
  
0 {yylval = 0; return ZERO;}
  
1 {yylval = 1; return ONE;}
  
.|\n {yylval = 2; return 0;}
  
%%

chevron_right


Parser Source Code :



filter_none

edit
close

play_arrow

link
brightness_4
code

%{
  /* Definition section */
  #include<stdio.h>
  #include <stdlib.h>
  void yyerror(const char *str) 
  {
   printf("\nSequence Rejected\n");        
  }
  
%}
  
%token ZERO ONE
  
/* Rule Section */
%%
  
r : s {printf("\nSequence Accepted\n\n");}
;
  
s : n
| ZERO a
| ONE b
;
  
a : n a
| ZERO
;
  
b : n b
| ONE
;
  
n : ZERO
| ONE
;
  
%%
  
#include"lex.yy.c"
//driver code
int main() 
 {
    printf("\nEnter Sequence of Zeros and Ones : ");
    yyparse();
    printf("\n");
    return 0;
 }

chevron_right


Output:


Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :