1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
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"
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
);
57 /* Order is important as the backend will try to follow it */
58 AM_TOKEN_FIRST_ORDERED_MACRO
= ANJUTA_TOKEN_USER
,
60 AM_TOKEN_DIST_SUBDIRS
,
65 AM_TOKEN__LTLIBRARIES
,
84 AM_TOKEN_FIRST_ORDERED_TARGET_MACRO
,
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
,