Added byline
[anjuta.git] / plugins / am-project / am-scanner.h
blobe77b4bf87e372f2503f3e0bd96b4143fbc2ba752
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 /*
3 * am-scanner.h
4 * Copyright (C) Sébastien Granjoux 2009 <seb.sfo@free.fr>
6 * main.c is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * main.c is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 * See the GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef _AM_SCANNER_H_
21 #define _AM_SCANNER_H_
23 #include "am-project.h"
25 #include "libanjuta/anjuta-token.h"
26 #include "libanjuta/anjuta-token-file.h"
28 #include <glib.h>
29 #include <gio/gio.h>
31 G_BEGIN_DECLS
33 //#define YYSTYPE AnjutaToken*
34 #define YYLTYPE AnjutaToken*
35 #define YYSTYPE AnjutaToken*
37 typedef struct _AmpAmScanner AmpAmScanner;
39 AmpAmScanner *amp_am_scanner_new (AmpProject *project, AmpGroupNode *group);
40 void amp_am_scanner_free (AmpAmScanner *scanner);
42 AnjutaToken *amp_am_scanner_parse_token (AmpAmScanner *scanner, AnjutaToken *root, AnjutaToken *content, GFile *filename, GError **error);
44 void amp_am_scanner_set_am_variable (AmpAmScanner *scanner, AnjutaToken *variable);
45 void amp_am_scanner_include (AmpAmScanner *scanner, AnjutaToken *name);
46 void amp_am_scanner_update_variable (AmpAmScanner *scanner, AnjutaToken *variable);
48 void amp_project_set_am_variable (AmpProject* project, AmpGroupNode* group, AnjutaToken *variable, GHashTable *orphan_properties);
50 void amp_am_scanner_parse_variable (AmpAmScanner *scanner, AnjutaToken *variable);
51 void amp_am_scanner_parse_ac_variable (AmpAmScanner *scanner, AnjutaToken *variable);
53 void amp_am_yyerror (YYLTYPE *loc, AmpAmScanner *scanner, char const *s);
55 typedef enum
57 /* Order is important as the backend will try to follow it */
58 AM_TOKEN_FIRST_ORDERED_MACRO = ANJUTA_TOKEN_USER,
59 AM_TOKEN_SUBDIRS,
60 AM_TOKEN_DIST_SUBDIRS,
61 AM_TOKEN__DATA,
62 AM_TOKEN__HEADERS,
63 AM_TOKEN__LIBRARIES,
64 AM_TOKEN__LISP,
65 AM_TOKEN__LTLIBRARIES,
66 AM_TOKEN__MANS,
67 AM_TOKEN__PROGRAMS,
68 AM_TOKEN__PYTHON,
69 AM_TOKEN__SCRIPTS,
70 AM_TOKEN__TEXINFOS,
71 AM_TOKEN__JAVA,
72 AM_TOKEN_DIR,
73 AM_TOKEN__LDFLAGS,
74 AM_TOKEN__CPPFLAGS,
75 AM_TOKEN__CFLAGS,
76 AM_TOKEN__CXXFLAGS,
77 AM_TOKEN__JAVACFLAGS,
78 AM_TOKEN__VALAFLAGS,
79 AM_TOKEN__FCFLAGS,
80 AM_TOKEN__OBJCFLAGS,
81 AM_TOKEN__LFLAGS,
82 AM_TOKEN__YFLAGS,
84 AM_TOKEN_FIRST_ORDERED_TARGET_MACRO,
85 AM_TOKEN__SOURCES,
86 AM_TOKEN_TARGET_CPPFLAGS,
87 AM_TOKEN_TARGET_CFLAGS,
88 AM_TOKEN_TARGET_CXXFLAGS,
89 AM_TOKEN_TARGET_OBJCFLAGS,
90 AM_TOKEN_TARGET_VALAFLAGS,
91 AM_TOKEN_TARGET_JAVACFLAGS,
92 AM_TOKEN_TARGET_LFLAGS,
93 AM_TOKEN_TARGET_YFLAGS,
94 AM_TOKEN_TARGET_FCFLAGS,
95 AM_TOKEN_TARGET_LDFLAGS,
96 AM_TOKEN_TARGET_LIBADD,
97 AM_TOKEN_TARGET_LDADD,
98 AM_TOKEN_TARGET_DEPENDENCIES,
99 AM_TOKEN_LAST_ORDERED_TARGET_MACRO,
101 AM_TOKEN_LAST_ORDERED_MACRO,
103 } AmTokenType;
105 G_END_DECLS
107 #endif