Blame view
scripts/dtc/srcpos.h
2.75 KB
a4da2e3ec [POWERPC] Merge d... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* * Copyright 2007 Jon Loeliger, Freescale Semiconductor, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA */ |
658f29a51 of/flattree: Upda... |
19 20 |
#ifndef _SRCPOS_H_ #define _SRCPOS_H_ |
a4da2e3ec [POWERPC] Merge d... |
21 |
|
ed95d7450 powerpc: Update i... |
22 |
#include <stdio.h> |
658f29a51 of/flattree: Upda... |
23 24 25 |
struct srcfile_state { FILE *f; char *name; |
ed95d7450 powerpc: Update i... |
26 |
char *dir; |
658f29a51 of/flattree: Upda... |
27 28 |
int lineno, colno; struct srcfile_state *prev; |
ed95d7450 powerpc: Update i... |
29 |
}; |
658f29a51 of/flattree: Upda... |
30 31 32 33 34 35 36 |
extern struct srcfile_state *current_srcfile; /* = NULL */ FILE *srcfile_relative_open(const char *fname, char **fullnamep); void srcfile_push(const char *fname); int srcfile_pop(void); struct srcpos { |
a4da2e3ec [POWERPC] Merge d... |
37 38 39 40 |
int first_line; int first_column; int last_line; int last_column; |
658f29a51 of/flattree: Upda... |
41 42 |
struct srcfile_state *file; }; |
a4da2e3ec [POWERPC] Merge d... |
43 |
|
658f29a51 of/flattree: Upda... |
44 |
#define YYLTYPE struct srcpos |
a4da2e3ec [POWERPC] Merge d... |
45 |
|
658f29a51 of/flattree: Upda... |
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ if (N) { \ (Current).first_line = YYRHSLOC(Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC(Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC(Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ (Current).file = YYRHSLOC(Rhs, N).file; \ } else { \ (Current).first_line = (Current).last_line = \ YYRHSLOC(Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC(Rhs, 0).last_column; \ (Current).file = YYRHSLOC (Rhs, 0).file; \ } \ } while (0) |
a4da2e3ec [POWERPC] Merge d... |
62 |
|
658f29a51 of/flattree: Upda... |
63 64 65 66 67 68 |
/* * Fictional source position used for IR nodes that are * created without otherwise knowing a true source position. * For example,constant definitions from the command line. */ extern struct srcpos srcpos_empty; |
a4da2e3ec [POWERPC] Merge d... |
69 |
|
658f29a51 of/flattree: Upda... |
70 71 72 73 |
extern void srcpos_update(struct srcpos *pos, const char *text, int len); extern struct srcpos *srcpos_copy(struct srcpos *pos); extern char *srcpos_string(struct srcpos *pos); extern void srcpos_dump(struct srcpos *pos); |
a4da2e3ec [POWERPC] Merge d... |
74 |
|
658f29a51 of/flattree: Upda... |
75 76 77 78 79 80 |
extern void srcpos_verror(struct srcpos *pos, char const *, va_list va) __attribute__((format(printf, 2, 0))); extern void srcpos_error(struct srcpos *pos, char const *, ...) __attribute__((format(printf, 2, 3))); extern void srcpos_warn(struct srcpos *pos, char const *, ...) __attribute__((format(printf, 2, 3))); |
a4da2e3ec [POWERPC] Merge d... |
81 |
|
658f29a51 of/flattree: Upda... |
82 |
#endif /* _SRCPOS_H_ */ |