Lex Program to recognize whether a given sentence is simple or compound
Problem definition:
Write a Lex Program to recognize whether a given sentence is a simple or compound sentence. Print the result on standard output.
A simple sentence is one that does not contain another sentence as a component. These sentences are represented by capital letters A-Z.
A compound sentence contains at least one simple sentence as a component, along with connecting keywords such as and, if, but, because, then, etc.
Structure of LEX Program:
%{ Definition section %} %% Rules section %% User Subroutine section |
Click here to learn – How to Compile & Run LEX / YACC Programs on Windows 8, 10, and 11?
Lex Program to recognize whether a given sentence is simple or compound
/*Program to recognize whether a given sentence is simple or compound.*/ %{ #include<stdio.h> int flag=0; %} %% and | or | but | because | if | then | nevertheless { flag=1; } . ; \n { return 0; } %% int main() { printf("Enter the sentence:\n"); yylex(); if(flag==0) printf("Simple sentence\n"); else printf("compound sentence\n"); } int yywrap( ) { return 1; }
Output:
maheshgh@maheshgh:~/LexYacc$ lex demo.l
maheshgh@maheshgh:~/LexYacc$ gcc lex.yy.c
maheshgh@maheshgh:~/LexYacc$ ./a.out
Enter the sentence:
My name is Mahesh Huddar and I am from India
(Note: press control+d after input)
Compound sentence
maheshgh@maheshgh:~/LexYacc$ ./a.out
My name is Mahesh Huddar
(Note: press control+d after input)
Simple sentence
Summary:
This article discusses how to write a lex program to find whether a given statement is simple or compound If you like the article, do share it with your friends.