%{
#include <stdio.h>
#include <stdlib.h>
int num1 = -1, num2 = -1;
%}
%%
[0-9]+ {
if (num1 == -1) {
num1 = atoi(yytext);
} else {
num2 = atoi(yytext);
}
}
"+" {
; // This simply matches the plus
sign, no action needed
}
\n {
if (num1 != -1 && num2 != -1) {
printf("Sum: %d\n", num1 + num2);
num1 = -1;
num2 = -1;
} else {
printf("Error: Two numbers required for addition.\n");
}
}
. { ; }
%%
int main() {
yylex();
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBudW0xID0gLTEsIG51bTIgPSAtMTsKJX0KCiUlCgpbMC05XSsgIHsKICAgICAgICAgICAgaWYgKG51bTEgPT0gLTEpIHsKICAgICAgICAgICAgICAgIG51bTEgPSBhdG9pKHl5dGV4dCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBudW0yID0gYXRvaSh5eXRleHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKIisiICAgICB7CiAgICAgICAgICAgIDsgLy8gVGhpcyBzaW1wbHkgbWF0Y2hlcyB0aGUgcGx1cyBzaWduLCBubyBhY3Rpb24gbmVlZGVkCiAgICAgICAgfQoKXG4gICAgICB7CiAgICAgICAgICAgIGlmIChudW0xICE9IC0xICYmIG51bTIgIT0gLTEpIHsKICAgICAgICAgICAgICAgIHByaW50ZigiU3VtOiAlZFxuIiwgbnVtMSArIG51bTIpOwogICAgICAgICAgICAgICAgbnVtMSA9IC0xOwogICAgICAgICAgICAgICAgbnVtMiA9IC0xOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJpbnRmKCJFcnJvcjogVHdvIG51bWJlcnMgcmVxdWlyZWQgZm9yIGFkZGl0aW9uLlxuIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgouICAgICAgIHsgOyB9CgolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0K