-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproiect.l
32 lines (30 loc) · 1.04 KB
/
proiect.l
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
%{
#include "y.tab.h"
#include<stdio.h>
#include<string.h>
%}
%%
"\\\\" {return BACKSLBACKSL;}
"\\" {return BACKSL;}
"{" {return LBRACE;}
"}" {return RBRACE;}
"$" {return DOLLAR;}
"^" {return POW;}
"\\begin{document}" {return LBEGINDOCU;}
"\\end{document}" {return LENDDOCU;}
"\\documentclass" {return DOCUMENTCLASS;}
"\\textbf" {return BOLD;}
"\\textit" {return ITALIC;}
"article" {return ARTICLE;}
"proc" {return PROC;}
"letter" {return LETTER;}
"\\title" {return TITLE;}
"\\section" {return SECTION;}
"\\hspace" {return HSPACE;}
"\\vspace" {return VSPACE;}
(\%|\_|\&|\$|\#) {return SPECCHAR;}
("+"|"-"|"=") {yylval.charval = strdup(yytext); return OPERATOR;}
[a-z] {yylval.charval = strdup(yytext); return LETTERS;}
[0-9]+ {yylval.val = atoi(yytext); return INTEGER;}
((\.|\,|\!|\?|\:|\;)|[a-zA-Z0-9])+ {yylval.charval = strdup(yytext); return WORD;}
%%