Replaced case statements for easier compile

This commit is contained in:
Jeremiah Orians 2017-11-20 21:01:36 -05:00
parent c4cd93bc24
commit d80bcaa678
No known key found for this signature in database
GPG Key ID: 7457821534D2ACCD
1 changed files with 29 additions and 27 deletions

View File

@ -21,7 +21,7 @@
void purge_line_comments()
{
char c;
int c;
do
{
c = getchar();
@ -33,14 +33,19 @@ void purge_line_comments()
} while ( '\n' != c );
}
int hex(char c)
int hex(int c)
{
switch(c)
if (c >= '0' && c <= '9')
{
case '0' ... '9': return (c - 48);
case 'a' ... 'f': return (c - 87);
case 'A' ... 'F': return (c - 55);
default: break;
return (c - 48);
}
else if (c >= 'a' && c <= 'z')
{
return (c - 87);
}
else if (c >= 'A' && c <= 'Z')
{
return (c - 55);
}
printf("You managed to call a hex function without a hex value!!!\n");
@ -49,35 +54,32 @@ int hex(char c)
int main(int argc, char *argv[])
{
char c;
int sum;
int c;
int sum = 0;
bool toggle;
toggle = false;
do
{
c = getchar();
switch(c)
if (c == '#')
{
case '0' ... '9':
case 'a' ... 'f':
case 'A' ... 'F':
purge_line_comments();
}
else if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
if(!toggle)
{
if(!toggle)
{
sum = hex(c);
toggle = true;
}
else
{
sum = (sum * 16) + hex(c);
toggle = false;
putc(sum, stdout);
}
break;
sum = hex(c);
toggle = true;
}
case '#': purge_line_comments();
default: break;
else
{
sum = (sum * 16) + hex(c);
toggle = false;
putc(sum, stdout);
}
break;
}
}while(c != EOF);