Facebook
From Big Owl, 2 Years ago, written in Plain Text.
This paste is a reply to Untitled from Small Crow - go back
Embed
Viewing differences between Untitled and Re: Untitled
comp : main.o init.o parser.o emitter.o \
        error.o lexer.o symbol.o
        cc -o comp main.o init.o parser.o emitter.o \
        error.o lexer.o symbol.o

main.o : main.c global.h
        cc -c main.c

init.o : init.c global.h
        cc -c init.c

parser.o : parser.c global.h
        cc -c parser.c

emitter.o : emitter.c global.h
        cc -c emitter.c

error.o : error.c global.h
        cc -c error.c

lexer.c : lexer.l
        lex -t lexer.l > lexer.c

lexer.o : lexer.c global.h
        cc -c lexer.c

symbol.o : symbol.c global.h
        cc -c symbol.c

clean :
        rm comp main.o init.o parser.o emitter.o \
        error.o lexer.o symbol.o lexer.c
%option noyywrap

%{

#include 
#include "global.h"


#define YY_DECL int lexan()

int lineno = 1;
int tokenval = NONE;


%}

%%

[t ] {}

[n] {
  lineno++;
}

[0-9]+ {
  tokenval = atoi(yytext);
  return NUM;
}

[A-za-z][A-za-z0-9]+ {
  int p = lookup(yytext);
  if (p == 0)
    p = insert(yytext, ID);
    tokenval = p;
  return symtable[p].token;
}

<> {
  yylex_destroy();
  return DONE;
}

. {
  tokenval = NONE;
  return yytext[0];
}

%%