%{
#include <stdio.h>
#include <string.h>
%}
KEYWORD int
|float|if
|else
|while
|for
|return
|void
|char
|double
DATATYPE int
|float|char
|double
|void
IDENTIFIER [a-zA-Z_][a-zA-Z0-9_]*
OPERATOR (\+|\-|\*|\/|\=|\==|\!=|\<|\>|<=|>=)
SYMBOL [;,\(\)\{\}]
%%
{KEYWORD} { printf("Keyword: %s\n", yytext); }
{DATATYPE} { printf("Datatype: %s\n", yytext); }
{IDENTIFIER} { printf("Identifier: %s\n", yytext); }
{OPERATOR} { printf("Operator: %s\n", yytext); }
{SYMBOL} { printf("Symbol: %s\n", yytext); }
[ \t\n] ; // Ignore whitespace
. { printf("Unknown: %s\n", yytext); }
%%
int main() {
yylex();
return 0;
}
int yywrap() { return 1; }
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiV9CgpLRVlXT1JEICAgICBpbnR8ZmxvYXR8aWZ8ZWxzZXx3aGlsZXxmb3J8cmV0dXJufHZvaWR8Y2hhcnxkb3VibGUKREFUQVRZUEUgICAgaW50fGZsb2F0fGNoYXJ8ZG91YmxlfHZvaWQKSURFTlRJRklFUiAgW2EtekEtWl9dW2EtekEtWjAtOV9dKgpOVU1CRVIgICAgICBbMC05XSsKT1BFUkFUT1IgICAgKFwrfFwtfFwqfFwvfFw9fFw9PXxcIT18XDx8XD58PD18Pj0pClNZTUJPTCAgICAgIFs7LFwoXClce1x9XQoKJSUKe0tFWVdPUkR9ICAgICAgIHsgcHJpbnRmKCJLZXl3b3JkOiAlc1xuIiwgeXl0ZXh0KTsgfQp7REFUQVRZUEV9ICAgICAgeyBwcmludGYoIkRhdGF0eXBlOiAlc1xuIiwgeXl0ZXh0KTsgfQp7SURFTlRJRklFUn0gICAgeyBwcmludGYoIklkZW50aWZpZXI6ICVzXG4iLCB5eXRleHQpOyB9CntOVU1CRVJ9ICAgICAgICB7IHByaW50ZigiTnVtYmVyOiAlc1xuIiwgeXl0ZXh0KTsgfQp7T1BFUkFUT1J9ICAgICAgeyBwcmludGYoIk9wZXJhdG9yOiAlc1xuIiwgeXl0ZXh0KTsgfQp7U1lNQk9MfSAgICAgICAgeyBwcmludGYoIlN5bWJvbDogJXNcbiIsIHl5dGV4dCk7IH0KWyBcdFxuXSAgICAgICAgIDsgIC8vIElnbm9yZSB3aGl0ZXNwYWNlCi4gICAgICAgICAgICAgICB7IHByaW50ZigiVW5rbm93bjogJXNcbiIsIHl5dGV4dCk7IH0KJSUKCmludCBtYWluKCkgewogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9CmludCB5eXdyYXAoKSB7IHJldHVybiAxOyB9