[AArch64][SVE 13/32] Add an F_STRICT flag
[deliverable/binutils-gdb.git] / gas / itbl-lex.l
1 /* itbl-lex.l
2 Copyright (C) 1997-2016 Free Software Foundation, Inc.
3
4 This file is part of GAS, the GNU Assembler.
5
6 GAS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
10
11 GAS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to the Free
18 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
19 02110-1301, USA. */
20
21 %{
22 #include "as.h"
23 #include "itbl-lex.h"
24 #include <itbl-parse.h>
25
26 #ifdef DEBUG
27 #define DBG(x) printf x
28 #define MDBG(x) printf x
29 #else
30 #define DBG(x)
31 #define MDBG(x)
32 #endif
33
34 int insntbl_line = 1;
35 %}
36
37 ALNUM [A-Za-z0-9_]
38 DIGIT [0-9]
39 ALPHA [A-Za-z_]
40 HEX [0-9A-Fa-f]
41
42 %%
43
44 "creg"|"CREG" {
45 return CREG;
46 }
47 "dreg"|"DREG" {
48 return DREG;
49 }
50 "greg"|"GREG" {
51 return GREG;
52 }
53 "immed"|"IMMED" {
54 return IMMED;
55 }
56 "addr"|"ADDR" {
57 return ADDR;
58 }
59 "insn"|"INSN" {
60 return INSN;
61 }
62 "p"{DIGIT} {
63 yytext[yyleng] = 0;
64 yylval.processor = strtoul (yytext+1, 0, 0);
65 return PNUM;
66 }
67 {DIGIT}+ {
68 yytext[yyleng] = 0;
69 yylval.num = strtoul (yytext, 0, 0);
70 return NUM;
71 }
72 "0x"{HEX}+ {
73 yytext[yyleng] = 0;
74 yylval.num = strtoul (yytext, 0, 0);
75 return NUM;
76 }
77 {ALPHA}{ALNUM}* {
78 yytext[yyleng] = 0;
79 yylval.str = strdup (yytext);
80 return ID;
81 }
82 ";"|"#" {
83 int c;
84 while ((c = input ()) != EOF)
85 {
86 if (c == '\n')
87 {
88 unput (c);
89 break;
90 }
91 }
92 }
93 "\n" {
94 insntbl_line++;
95 MDBG (("in lex, NL = %d (x%x)\n", NL, NL));
96 return NL;
97 }
98 " "|"\t" {
99 }
100 . {
101 MDBG (("char = %x, %d\n", yytext[0], yytext[0]));
102 return yytext[0];
103 }
104 %%
105
106 #ifndef yywrap
107 int
108 yywrap ()
109 {
110 return 1;
111 }
112 #endif
This page took 0.043625 seconds and 4 git commands to generate.