Documente Academic
Documente Profesional
Documente Cultură
for (i = 0; i < cnt; ++i) //Loop to store ascii values in array ascii
{
ascii[i] = (int)expr[i];
}
for(i=0;i<cnt;++i)
{
if( isdigit(expr[i]) ) // Condition for current element to be digit
{
while(isdigit(expr[i])) //Run loop until successive elements are digits
{
number=10*number+ ascii[i] -'0'; // Needed to convert for eg. �3� �4� to 34
i++;
}
j++;
constants[j]=number;
number=0;
}
return 0;
}
//Symbol Table
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdbool.h>
if(*headRef==NULL)
{
newnode->offset=0;
prevnode = newnode;
}
strcpy(newnode->identifierName,identifier);
strcpy(newnode->datatype,type);
if(strcmp(newnode->datatype,"int") == 0)
(newnode->offset) = (prevnode->offset) + sizeof(int);
else if(strcmp("float",newnode->datatype) == 0)
(newnode->offset) = (prevnode->offset) + sizeof(float);
else if(strcmp("char",newnode->datatype) == 0)
(newnode->offset) = (prevnode->offset) + sizeof(char);
else if(strcmp("double",newnode->datatype) == 0)
(newnode->offset) = (prevnode->offset) + sizeof(double);
prevnode = newnode;
newnode->next = (*headRef);
(*headRef) = newnode;
}
if(param1>2)
{
fprintf(stderr,"Too many arguments for read to perform. \n");
exit( EXIT_FAILURE );
}
if(fp==NULL)
{
fprintf(stderr,"File access denied on read. \n");
exit( EXIT_FAILURE );
}
return fp;
}
char string[BUFFER_SIZE];
symbol* head = NULL;
display(head);
return 0;
}