2
2
h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
return (chr == ' ' || chr == '+' || chr == '-' || chr == '*' || chr == '/' ||
chr == ',' ||
chr == ';' || chr == '%' || chr == '>' || chr == '<' || chr == '=' ||
chr == '(' ||
chr == ')' || chr == '[' || chr == ']' || chr == '{' || chr == '}');
return (chr == '+' || chr == '-' || chr == '*' || chr == '/' || chr == '%' ||
chr == '>' || chr == '<' || chr == '=' || chr == '&' || chr == '|');
return false;
return false;
}
return true;
if (strcmp(str, keywords[i]) == 0)
return true;
return false;
int i = 0;
i++;
} else {
return false;
return true;
subStr[subLength] = '\0';
return subStr;
if (input[right] == '"') {
left = right;
right++;
left = right;
continue;
right++;
left = right;
continue;
right += 2;
right++;
left = right;
continue;
if (isOperator(input[right])) {
if (isOperator(input[right + 1])) {
right += 2;
} else {
right++;
left = right;
continue;
// Skipping delimiters
if (isDelimiter(input[right])) {
right++;
left = right;
continue;
right++;
if (isKeyword(subStr))
else if (isNumber(subStr))
else if (isValidIdentifier(subStr))
else
printf("Token: Unidentified, Value: %s\n", subStr);
left = right;
// Main function
int main() {
lexicalAnalyzer(lex_input);
return 0;