#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h>
int check_match_var(char *str)
{
int err;
int match;
regex_t preg;
char err_buf[BUFSIZ];
const char *regex = "^(int|char|float|double) [a-zA-Z0-9]{1,};";
err = regcomp(&preg, regex, REG_EXTENDED);
if (err == 0)
{
match = regexec(&preg, str, 0, NULL, 0);
regfree(&preg);
if (match == 0)
else
}
else
{
regerror(err, &preg, err_buf, BUFSIZ);
printf("regcomp: %s\n", err_buf
); return (1);
}
return (0);
}
int marvin(char **av)
{
check_match_var(av[1]);
return (0);
}
int main(int ac, char **av)
{
check_match_var("int x;");
// marvin(av);
return (0);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8cmVnZXguaD4gCgppbnQgY2hlY2tfbWF0Y2hfdmFyKGNoYXIgKnN0cikKewogIGludCBlcnI7CiAgaW50IG1hdGNoOwogIHJlZ2V4X3QgcHJlZzsKICBjaGFyIGVycl9idWZbQlVGU0laXTsKICBjb25zdCBjaGFyICpyZWdleCA9ICJeKGludHxjaGFyfGZsb2F0fGRvdWJsZSkgW2EtekEtWjAtOV17MSx9OyI7CgogIGVyciA9IHJlZ2NvbXAoJnByZWcsIHJlZ2V4LCBSRUdfRVhURU5ERUQpOwogIHByaW50ZigiRXJyIDogJWRcbiIsIGVycik7CiAgaWYgKGVyciA9PSAwKQogICAgewogICAgICBtYXRjaCA9IHJlZ2V4ZWMoJnByZWcsIHN0ciwgMCwgTlVMTCwgMCk7CiAgICAgIHJlZ2ZyZWUoJnByZWcpOwogICAgICBpZiAobWF0Y2ggPT0gMCkKICAgIHByaW50ZigiTWF0Y2ggIVxuIik7CiAgICAgIGVsc2UKICAgIHByaW50ZigiTm8gbWF0Y2ggIVxuIik7CiAgICB9CiAgZWxzZQogICAgewogICAgICByZWdlcnJvcihlcnIsICZwcmVnLCBlcnJfYnVmLCBCVUZTSVopOwogICAgICBwcmludGYoInJlZ2NvbXA6ICVzXG4iLCBlcnJfYnVmKTsKICAgICAgcmV0dXJuICgxKTsKICAgIH0KICByZXR1cm4gKDApOwp9CgppbnQgbWFydmluKGNoYXIgKiphdikKewogIGNoZWNrX21hdGNoX3ZhcihhdlsxXSk7CiAgcmV0dXJuICgwKTsKfQoKaW50IG1haW4oaW50IGFjLCBjaGFyICoqYXYpCnsKICAgIAljaGVja19tYXRjaF92YXIoImludCB4OyIpOwovLyAgICAgIG1hcnZpbihhdik7CiAgcmV0dXJuICgwKTsKfQ==