Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include <stdio.h>
- char lineImage[1000];
- int tokenPtr;
- char lexer(){
- int len = strlen(lineImage);
- if (tokenPtr < len){
- tokenPtr++;
- return lineImage[tokenPtr];
- }
- else{
- printf("Exceeded maximum program size of %d\n", tokenPtr);
- return '*';
- }
- }
- int backup(){
- if(tokenPtr >= 0){
- tokenPtr--;
- return 1;
- }
- else{
- printf("Error in source program.\n");
- return 0;
- }
- }
- int STMT(){
- return 1;
- }
- int Q(){
- char c = lexer();
- if(c == '\n' || STMT()){
- return 1;
- }
- else{
- return 0;
- }
- }
- int pgm(){ //REPLACE THIS AND TEST IT
- char c = lexer();
- while(c != '\n') c = lexer();
- if(c == '\n'){
- printf("Found new line\n");
- c = lexer();
- if(STMT()){
- printf("Found stmt\n");
- if(Q()){
- printf("Found Q\n");
- return 1;
- }
- }
- }
- else{
- printf("c = %c\n", c);
- printf("Didn't find Q\n");
- return 0;
- }
- /**
- if(next token is '\n' || STMT || Q)
- return 1;
- else
- return 0;
- */
- }
- int main(int argc, char * argv[]){
- // if(argc == 1){
- // printf("Need file");
- // return 0;
- // }
- // if(argc == 2){
- // }
- FILE * file;
- file = fopen( "mac.mac" , "r");
- if(file == NULL){
- printf("Error");
- return 0;
- }
- char token;
- // strcpy(lineImage,"$");
- fgets(lineImage, 1000, file);
- tokenPtr = -1;
- // token = lexer();
- token = '$';
- if(pgm() && (token == '$')){
- printf("Parse found a pgm\n");
- }
- else{
- printf("Parse failed\n");
- }
- fclose(file);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement