Compiler Design Lab 2
Compiler Design Lab 2
Reg No:22BCE1889
a)Write a program to determine whether the given input is a valid identifier or not (with
and without regular expression )C program
#include <stdio.h>
#include <regex.h>
regex_t regex;
int result;
if (result) {
return 0;
regfree(®ex);
if (!result) {
return 1;
return 0;
} else {
printf("Regex match failed\n");
return 0;
int main() {
char input[100];
scanf("%s", input);
if (isValidIdentifier(input)) {
printf("Valid identifier.\n");
} else {
printf("Invalid identifier.\n");
return 0;
}
#include <stdio.h>
#include <ctype.h>
return 0;
}
return 0;
return 1;
int main() {
char input[100];
scanf("%s", input);
if (isValidIdentifier(input)) {
printf("Valid identifier.\n");
} else {
printf("Invalid identifier.\n");
return 0;
}
b)Write a program to check whether a given string will get accepted for the
below regular expression C program
i)ab
#include <stdio.h>
#include <regex.h>
int result;
if (result) {
return 0;
regfree(®ex);
if (!result) {
return 1; // Match
return 0; // No match
} else {
return 0;
int main() {
char input[100];
scanf("%s", input);
if (matchRegex(input, "ab")) {
printf("String accepted.\n");
} else {
return 0;
}
ii)(a)*abb
#include <stdio.h>
#include <regex.h>
regex_t regex;
int result;
if (result) {
return 0;
regfree(®ex);
if (!result) {
return 1; // Match
return 0; // No match
} else {
return 0;
int main() {
char input[100];
scanf("%s", input);
if (matchRegex(input, "(a)*abb")) {
} else {
return 0;
}
iii)(ab)*a
#include <stdio.h>
#include <regex.h>
regex_t regex;
int result;
result = regcomp(®ex, pattern, REG_EXTENDED);
if (result) {
return 0;
regfree(®ex);
if (!result) {
return 1; // Match
return 0; // No match
} else {
return 0;
int main() {
char input[100];
scanf("%s", input);
if (matchRegex(input, "(ab)*a")) {
printf("String accepted.\n");
} else {
printf("String not accepted.\n");
return 0;
iv)b(a)+b
#include <stdio.h>
#include <regex.h>
regex_t regex;
int result;
if (result) {
return 0;
regfree(®ex);
if (!result) {
return 1; // Match
return 0; // No match
} else {
return 0;
int main() {
char input[100];
scanf("%s", input);
if (matchRegex(input, "b(a)+b")) {
} else {
return 0;