[anjuta/newproject] Implement variable support for autotools backend
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta/newproject] Implement variable support for autotools backend
- Date: Mon, 24 May 2010 19:55:55 +0000 (UTC)
commit 57d867f2cd438a59ca96957735a605371a7d3f56
Author: Sébastien Granjoux <seb sfo free fr>
Date: Tue May 18 22:43:34 2010 +0200
Implement variable support for autotools backend
.gitignore | 106 +++++++++++---
libanjuta/anjuta-token-list.c | 32 ++++-
libanjuta/anjuta-token-stream.c | 21 ++--
libanjuta/anjuta-token-stream.h | 2 +-
libanjuta/anjuta-token.c | 269 ++++++++++++++++++++++++-----------
libanjuta/anjuta-token.h | 7 +-
plugins/am-project/ac-parser.y | 1 +
plugins/am-project/ac-scanner.l | 2 +-
plugins/am-project/am-parser.y | 79 +++++-----
plugins/am-project/am-project.c | 126 +++++++++++++++--
plugins/am-project/am-project.h | 3 +-
plugins/am-project/am-scanner.h | 3 +-
plugins/am-project/am-scanner.l | 72 ++++++----
plugins/am-project/tests/anjuta.at | 4 +-
plugins/am-project/tests/anjuta.lst | 111 ++++++++++++++-
15 files changed, 620 insertions(+), 218 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index a92530c..8b4002d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,8 @@
-/*.bak
-/*.lo
-/*.o
-/*.orig
-/*.rej
-/*.tab.c
/*~
-/.*.swp
-/.deps
-/.gitignore
-/.libs
-/GPATH
-/GRTAGS
-/GSYMS
-/GTAGS
-/ID
-/Makefile
-/Makefile.in
-/TAGS
-/_libs
/anjuta.desktop
/anjuta.desktop.in
/autom4te.cache
+/*.bak
/config.cache
/config.h
/config.log
@@ -29,21 +11,103 @@
/config.status.lineno
/configure
/configure.lineno
+/.deps
+/.gitignore
+/GPATH
+/GRTAGS
+/GSYMS
+/GTAGS
+/ID
/intltool-extract
/intltool-extract.in
/intltool-merge
/intltool-merge.in
/intltool-update
/intltool-update.in
+/_libs
+/.libs
/libtool
-/po/*.gmo
-/po/*.mo
+/*.lo
+/Makefile
+/Makefile.in
+/*.o
+/*.orig
+/po/ar.gmo
+/po/az.gmo
+/po/be.gmo
+/po/be latin gmo
+/po/bg.gmo
+/po/ca.gmo
+/po/ca valencia gmo
+/po/cs.gmo
+/po/da.gmo
+/po/de.gmo
+/po/dz.gmo
+/po/el.gmo
+/po/en_CA.gmo
+/po/en_GB.gmo
+/po/en shaw gmo
+/po/es.gmo
+/po/eu.gmo
+/po/fi.gmo
+/po/fr.gmo
+/po/ga.gmo
+/po/gl.gmo
+/po/gu.gmo
+/po/he.gmo
+/po/hi.gmo
+/po/hr.gmo
+/po/hu.gmo
+/po/id.gmo
/po/.intltool-merge-cache
+/po/it.gmo
+/po/ja.gmo
+/po/kn.gmo
+/po/ko.gmo
+/po/lt.gmo
+/po/lv.gmo
+/po/mai.gmo
/po/Makefile
/po/Makefile.in
/po/Makefile.in.in
+/po/mk.gmo
+/po/ml.gmo
+/po/*.mo
+/po/mr.gmo
+/po/ms.gmo
+/po/nb.gmo
+/po/ne.gmo
+/po/nl.gmo
+/po/oc.gmo
+/po/or.gmo
+/po/pa.gmo
+/po/pl.gmo
/po/POTFILES
+/po/pt_BR.gmo
+/po/pt.gmo
+/po/ro.gmo
+/po/ru.gmo
+/po/rw.gmo
+/po/si.gmo
+/po/sk.gmo
+/po/sl.gmo
+/po/sq.gmo
+/po/sr.gmo
+/po/sr latin gmo
/po/stamp-it
+/po/sv.gmo
+/po/te.gmo
+/po/th.gmo
+/po/tr.gmo
+/po/uk.gmo
+/po/vi.gmo
+/po/zh_CN.gmo
+/po/zh_HK.gmo
+/po/zh_TW.gmo
+/*.rej
/so_locations
/stamp-h1
+/.*.swp
+/*.tab.c
/tags
+/TAGS
diff --git a/libanjuta/anjuta-token-list.c b/libanjuta/anjuta-token-list.c
index ba89ea3..3cf616e 100644
--- a/libanjuta/anjuta-token-list.c
+++ b/libanjuta/anjuta-token-list.c
@@ -22,6 +22,7 @@
#include "libanjuta/anjuta-debug.h"
#include <string.h>
+#include <stdio.h>
/* Type definition
*---------------------------------------------------------------------------*/
@@ -324,6 +325,11 @@ anjuta_token_first_word (AnjutaToken *list)
for (item = anjuta_token_first_item (list); item != NULL; item = anjuta_token_next_item (item))
{
+ if (anjuta_token_list (item) != list)
+ {
+ item = NULL;
+ break;
+ }
switch (anjuta_token_get_type (item))
{
case ANJUTA_TOKEN_START:
@@ -333,6 +339,7 @@ anjuta_token_first_word (AnjutaToken *list)
item = NULL;
break;
default:
+ if (anjuta_token_is_empty (item)) continue;
break;
}
break;
@@ -344,23 +351,31 @@ anjuta_token_first_word (AnjutaToken *list)
AnjutaToken *
anjuta_token_next_word (AnjutaToken *item)
{
- for (item = anjuta_token_next_item (item); item != NULL; item = anjuta_token_next_item (item))
+ AnjutaToken *next;
+
+ for (next = anjuta_token_next_item (item); next != NULL; next = anjuta_token_next_item (next))
{
- switch (anjuta_token_get_type (item))
+ if (anjuta_token_list (item) != anjuta_token_list (next))
+ {
+ next = NULL;
+ break;
+ }
+ switch (anjuta_token_get_type (next))
{
case ANJUTA_TOKEN_START:
case ANJUTA_TOKEN_NEXT:
continue;
case ANJUTA_TOKEN_LAST:
- item = NULL;
- break;
+ next = NULL;
+ break;
default:
+ if (anjuta_token_is_empty (next)) continue;
break;
}
break;
}
-
- return item;
+
+ return next;
}
AnjutaToken *
@@ -371,6 +386,11 @@ anjuta_token_nth_word (AnjutaToken *list, guint n)
for (item = anjuta_token_first_item (list); item != NULL; item = anjuta_token_next_item (item))
{
+ if (anjuta_token_list (item) != list)
+ {
+ item = NULL;
+ break;
+ }
switch (anjuta_token_get_type (item))
{
case ANJUTA_TOKEN_START:
diff --git a/libanjuta/anjuta-token-stream.c b/libanjuta/anjuta-token-stream.c
index 04076d3..a1abc9f 100644
--- a/libanjuta/anjuta-token-stream.c
+++ b/libanjuta/anjuta-token-stream.c
@@ -143,7 +143,8 @@ anjuta_token_stream_tokenize (AnjutaTokenStream *stream, gint type, gsize length
else
{
/* Get several token */
- anjuta_token_append_child (frag, copy);
+ anjuta_token_insert_after (frag, copy);
+ anjuta_token_merge (frag, copy);
}
if (toklen == (length + stream->begin))
@@ -160,7 +161,8 @@ anjuta_token_stream_tokenize (AnjutaTokenStream *stream, gint type, gsize length
}
else
{
- anjuta_token_append_child (frag, copy);
+ anjuta_token_insert_after (frag, copy);
+ anjuta_token_merge (frag, copy);
length -= toklen;
end = anjuta_token_next (end);
stream->begin = 0;
@@ -285,7 +287,8 @@ anjuta_token_stream_get_current_directory (AnjutaTokenStream *stream)
/**
* anjuta_token_stream_push:
* @parent: a parent #AnjutaTokenStream object or NULL.
- * @token: a token list.
+ * @root: a token or NULL
+ * @content: a token list.
*
* Create a new stream from a list of tokens. If a parent stream is passed,
* the new stream keep a link on it, so we can return it when the new stream
@@ -294,22 +297,22 @@ anjuta_token_stream_get_current_directory (AnjutaTokenStream *stream)
* Return value: The newly created stream.
*/
AnjutaTokenStream *
-anjuta_token_stream_push (AnjutaTokenStream *parent, AnjutaToken *token, GFile *filename)
+anjuta_token_stream_push (AnjutaTokenStream *parent, AnjutaToken *root, AnjutaToken *content, GFile *filename)
{
AnjutaTokenStream *child;
child = g_new (AnjutaTokenStream, 1);
- child->first = token;
+ child->first = content;
child->pos = 0;
child->begin = 0;
child->parent = parent;
- child->next = anjuta_token_next (token);
+ child->next = anjuta_token_next (content);
child->start = child->next;
- child->last = anjuta_token_last (token);
- if (child->last == token) child->last = NULL;
+ child->last = anjuta_token_last (content);
+ if (child->last == content) child->last = NULL;
- child->root = anjuta_token_new_static (ANJUTA_TOKEN_FILE, NULL);
+ child->root = root == NULL ? anjuta_token_new_static (ANJUTA_TOKEN_FILE, NULL) : root;
if (filename == NULL)
{
child->current_directory = parent == NULL ? NULL : g_object_ref (parent->current_directory);
diff --git a/libanjuta/anjuta-token-stream.h b/libanjuta/anjuta-token-stream.h
index 7c4b174..170b34f 100644
--- a/libanjuta/anjuta-token-stream.h
+++ b/libanjuta/anjuta-token-stream.h
@@ -28,7 +28,7 @@ G_BEGIN_DECLS
typedef struct _AnjutaTokenStream AnjutaTokenStream;
-AnjutaTokenStream *anjuta_token_stream_push (AnjutaTokenStream *stream, AnjutaToken *token, GFile *filename);
+AnjutaTokenStream *anjuta_token_stream_push (AnjutaTokenStream *stream, AnjutaToken *root, AnjutaToken *content, GFile *filename);
AnjutaTokenStream *anjuta_token_stream_pop (AnjutaTokenStream *stream);
AnjutaToken* anjuta_token_stream_get_root (AnjutaTokenStream *stream);
diff --git a/libanjuta/anjuta-token.c b/libanjuta/anjuta-token.c
index 7657906..f7d1319 100644
--- a/libanjuta/anjuta-token.c
+++ b/libanjuta/anjuta-token.c
@@ -96,6 +96,33 @@ struct _AnjutaToken
*---------------------------------------------------------------------------*/
static AnjutaToken *
+anjuta_token_next2 (AnjutaToken *token)
+{
+ AnjutaToken *last = token;
+ AnjutaToken *next;
+
+ while (last != NULL)
+ {
+ next = last->next;
+ if (next == NULL)
+ {
+ last = last->parent;
+ if (last != NULL)
+ {
+ for (; last->last != NULL; last = last->last);
+ }
+ }
+ else
+ {
+ for (; next->children != NULL; next = next->children);
+ break;
+ }
+ }
+
+ return next;
+}
+
+static AnjutaToken *
anjuta_token_next_child (AnjutaToken *child, AnjutaToken **last)
{
if (child == NULL) return child;
@@ -132,20 +159,35 @@ anjuta_token_next_child (AnjutaToken *child, AnjutaToken **last)
static AnjutaToken *
anjuta_token_next_after_children (AnjutaToken *token)
{
- if (token->next != NULL)
- {
- return token->next;
- }
- else if (token->parent != NULL)
+ while (token->next == NULL)
{
- return anjuta_token_next_after_children (token->parent);
- }
- else
+ token = token->parent;
+ if (token == NULL) return NULL;
+ };
+
+ return token->next;
+}
+
+static AnjutaToken *
+anjuta_token_next_item_after_children (AnjutaToken *parent)
+{
+ AnjutaToken *token;
+ AnjutaToken *last;
+
+ for (last = parent; last->last != NULL; last = last->last);
+
+ for (token = last; token->parent != NULL; token = token->parent)
{
- return NULL;
+ if (token->parent == parent)
+ {
+ return anjuta_token_next_after_children (parent);
+ }
}
+
+ return anjuta_token_next_after_children (last);
}
+
AnjutaToken *
anjuta_token_copy (AnjutaToken *token)
{
@@ -170,8 +212,16 @@ anjuta_token_copy (AnjutaToken *token)
return copy;
}
+/**
+ * anjuta_token_unlink_token:
+ * @token: a #AnjutaToken object.
+ *
+ * Unlink a single token, not the complete item, from the token tree.
+ *
+ * Return value: the removed token tree
+ */
static AnjutaToken *
-anjuta_token_unlink (AnjutaToken *token)
+anjuta_token_unlink_token (AnjutaToken *token)
{
if (token->prev != NULL)
@@ -194,6 +244,36 @@ anjuta_token_unlink (AnjutaToken *token)
return token;
}
+/**
+ * anjuta_token_insert_token_before:
+ * @sibling: a #AnjutaToken object.
+ * @token: a #AnjutaToken object.
+ *
+ * Insert token before sibling.
+ *
+ * Return value: inserted token
+ */
+static AnjutaToken *
+anjuta_token_insert_token_before (AnjutaToken *sibling, AnjutaToken *token)
+{
+ token->prev = sibling->prev;
+ token->next = sibling;
+
+ if (token->prev != NULL)
+ {
+ token->prev->next = token;
+ }
+ sibling->prev = token;
+
+ if ((sibling->parent != NULL) && (sibling->parent->children == sibling))
+ {
+ sibling->parent->children = token;
+ }
+ token->parent = sibling->parent;
+
+ return token;
+}
+
static void
anjuta_token_evaluate_token (AnjutaToken *token, GString *value, gboolean raw)
{
@@ -219,80 +299,51 @@ anjuta_token_evaluate_token (AnjutaToken *token, GString *value, gboolean raw)
}
static void
-anjuta_token_show (AnjutaToken *token, gint indent)
+anjuta_token_show (AnjutaToken *token, gint indent, gchar parent)
{
- fprintf (stdout, "%*s%p", indent, "", token);
- fprintf (stdout, ": %d \"%.*s\" %p/%p %s\n",
+ static gchar type[] = "\0";
+
+ type[0] = parent;
+ fprintf (stderr, "%*s%s %p", indent, "", type, token);
+ fprintf (stderr, ": %d \"%.*s\" %p/%p (%p/%p) %s\n",
anjuta_token_get_type (token),
anjuta_token_get_length (token),
anjuta_token_get_string (token),
token->last, token->children,
+ token->group, token->parent,
anjuta_token_get_flags (token) & ANJUTA_TOKEN_REMOVED ? " (removed)" : "");
}
static AnjutaToken*
-anjuta_token_dump_child (AnjutaToken *token, gint indent)
+anjuta_token_dump_child (AnjutaToken *token, gint indent, gchar type)
{
-
- anjuta_token_show (token, indent);
+ AnjutaToken *last;
+ AnjutaToken *child;
- if (token->children != NULL)
+ anjuta_token_show (token, indent, type);
+ indent += 4;
+
+ last = token;
+ if (token->last != NULL)
{
- AnjutaToken *child;
- AnjutaToken *next = NULL;
- AnjutaToken *last = anjuta_token_next_after_children (token);
-
- for (child = token->children; child != NULL;)
+ do
{
- if (child == last)
- {
- return child;
- }
- if (next == NULL)
- {
- next = anjuta_token_dump_child (child, indent + 4);
- }
- if (child == next)
- {
- next = NULL;
-
-#if 0
- /* Look for previous children */
- for (child = anjuta_token_next (child); child != NULL; child = child->parent)
- {
- if (child->parent == token) break;
- };
- continue;
-#endif
- }
- child = anjuta_token_next (child);
+ child = last->next;
+ if (child == NULL) break;
+ last = anjuta_token_dump_child (child, indent, '+');
}
+ while (child != token->last);
}
- if (token->last != NULL)
+ if (token->children != NULL)
{
- AnjutaToken *child;
- AnjutaToken *next = NULL;
-
- for (child = anjuta_token_next (token); child != NULL; child = anjuta_token_next (child))
+ for (child = token->children; child != NULL; child = child->next)
{
- if (next == NULL)
- {
- next = anjuta_token_dump_child (child, indent + 4);
- if (child == token->last)
- {
- return child;
- }
- }
- if (child == next) next = NULL;
- if (child == token->last)
- {
- return child;
- }
+ child = anjuta_token_dump_child (child, indent, '*');
}
}
-
- return token;
+
+ return last;
}
static gboolean
@@ -300,7 +351,7 @@ anjuta_token_check_child (AnjutaToken *token, AnjutaToken *parent)
{
if (token->parent != parent)
{
- anjuta_token_show (token, 0);
+ anjuta_token_show (token, 0, 0);
fprintf(stderr, "Error: Children has %p as parent instead of %p\n", token->parent, parent);
return FALSE;
}
@@ -463,13 +514,24 @@ AnjutaToken *
anjuta_token_next_item (AnjutaToken *item)
{
AnjutaToken *last;
+ AnjutaToken *next = item;
- if (item == NULL) return NULL;
-
- if ((item->group != NULL) && (item == item->group->last)) return NULL;
- for (last = item; last->last != NULL; last = last->last);
-
- return last->next;
+ while (next != NULL)
+ {
+ for (last = next; last->last != NULL; last = last->last);
+ next = last->next;
+ if (next == NULL)
+ {
+ next = last->parent;
+ }
+ else
+ {
+ for (; next->children != NULL; next = next->children);
+ break;
+ }
+ }
+
+ return next;
}
AnjutaToken *
@@ -913,7 +975,7 @@ anjuta_token_merge_children (AnjutaToken *first, AnjutaToken *end)
{
anjuta_token_insert_before (end, first);
}
- anjuta_token_unlink (end);
+ anjuta_token_unlink_token (end);
if (end->last != NULL)
{
first->last = end->last;
@@ -925,16 +987,41 @@ anjuta_token_merge_children (AnjutaToken *first, AnjutaToken *end)
return first;
}
+/**
+ * anjuta_token_merge_previous:
+ * @list: a #AnjutaToken object representing a list
+ * @first: a #AnjutaToken object for the new beginning of the list
+ *
+ * If the list token is not already linked with first, it is inserted
+ * just before first.
+ * If the list token is already linked, it must be in the same list after
+ * first token. It it possible to have several tokens beweent list and
+ * first.
+ *
+ * Return value: the new list
+ */
AnjutaToken *
-anjuta_token_merge_previous (AnjutaToken *first, AnjutaToken *end)
+anjuta_token_merge_previous (AnjutaToken *list, AnjutaToken *first)
{
- if ((end == NULL) || (first == end)) return first;
+ AnjutaToken *token;
+
+ if ((first == NULL) || (list == first)) return list;
- anjuta_token_unlink (first);
- anjuta_token_insert_before (end, first);
- end->group = first;
+ /* Change group of all tokens from end to first
+ * if the list is already linked */
+ if ((list->prev != NULL) || (list->parent != NULL))
+ {
+ for (token = first; token != list; token = anjuta_token_next_item (token))
+ {
+ token->group = list;
+ }
+ }
+
+ token = anjuta_token_next (list);
+ anjuta_token_unlink_token (list);
+ anjuta_token_insert_token_before (first, list);
- return first;
+ return list;
}
AnjutaToken *anjuta_token_split (AnjutaToken *token, guint size)
@@ -1008,12 +1095,15 @@ anjuta_token_evaluate (AnjutaToken *token)
if (token != NULL)
{
- AnjutaToken *last = token->last;
- AnjutaToken *child;
+ AnjutaToken *next;
- for (child = token; child != NULL; child = anjuta_token_next_child (child, &last))
+ next = anjuta_token_next_item (token);
+ for (; token != next; token = anjuta_token_next2 (token))
{
- anjuta_token_evaluate_token (child, value, TRUE);
+ if (token->children == NULL)
+ {
+ anjuta_token_evaluate_token (token, value, TRUE);
+ }
}
}
@@ -1021,6 +1111,13 @@ anjuta_token_evaluate (AnjutaToken *token)
return g_string_free (value, *(value->str) == '\0');
}
+gboolean
+anjuta_token_is_empty (AnjutaToken *token)
+{
+ return (token == NULL) || ((token->data.length == 0) && (token->last == NULL) && (token->children == NULL));
+}
+
+
/* Other functions
*---------------------------------------------------------------------------*/
@@ -1063,7 +1160,7 @@ anjuta_token_dump (AnjutaToken *token)
{
if (token == NULL) return;
- anjuta_token_dump_child (token, 0);
+ anjuta_token_dump_child (token, 0, 0);
}
void
@@ -1075,7 +1172,7 @@ anjuta_token_dump_link (AnjutaToken *token)
for (; token != last; token = anjuta_token_next (token))
{
- anjuta_token_show (token, 0);
+ anjuta_token_show (token, 0, 0);
}
}
@@ -1084,7 +1181,7 @@ anjuta_token_check (AnjutaToken *token)
{
if ((token->children != NULL) && (token->last != NULL))
{
- anjuta_token_show (token, 0);
+ anjuta_token_show (token, 0, 0);
fprintf(stderr, "Error: Previous token has both non NULL children and last\n");
return FALSE;
@@ -1213,7 +1310,7 @@ anjuta_token_free (AnjutaToken *token)
anjuta_token_free_children (token);
next = anjuta_token_next (token);
- anjuta_token_unlink (token);
+ anjuta_token_unlink_token (token);
if ((token->data.pos != NULL) && !(token->data.flags & ANJUTA_TOKEN_STATIC))
{
g_free (token->data.pos);
diff --git a/libanjuta/anjuta-token.h b/libanjuta/anjuta-token.h
index 44a0e14..c27f982 100644
--- a/libanjuta/anjuta-token.h
+++ b/libanjuta/anjuta-token.h
@@ -39,7 +39,7 @@ typedef enum
ANJUTA_TOKEN_CONTENT,
ANJUTA_TOKEN_ARGUMENT,
ANJUTA_TOKEN_VALUE,
- ANJUTA_TOKEN_EOV,
+ ANJUTA_TOKEN_EOV, // 16390
ANJUTA_TOKEN_PARSED,
ANJUTA_TOKEN_KEYWORD,
ANJUTA_TOKEN_OPERATOR,
@@ -49,7 +49,7 @@ typedef enum
ANJUTA_TOKEN_STATEMENT,
ANJUTA_TOKEN_NUMBER,
ANJUTA_TOKEN_JUNK,
- ANJUTA_TOKEN_COMMENT,
+ ANJUTA_TOKEN_COMMENT, // 16400
ANJUTA_TOKEN_OPEN_QUOTE,
ANJUTA_TOKEN_CLOSE_QUOTE,
ANJUTA_TOKEN_ESCAPE,
@@ -59,7 +59,7 @@ typedef enum
ANJUTA_TOKEN_NEXT,
ANJUTA_TOKEN_LAST,
ANJUTA_TOKEN_ITEM,
- ANJUTA_TOKEN_STRING,
+ ANJUTA_TOKEN_STRING, // 16410
ANJUTA_TOKEN_ERROR,
ANJUTA_TOKEN_WORD,
ANJUTA_TOKEN_LIST,
@@ -129,6 +129,7 @@ AnjutaToken *anjuta_token_split (AnjutaToken *token, guint size);
AnjutaToken *anjuta_token_cut (AnjutaToken *token, guint pos, guint size);
gchar *anjuta_token_evaluate (AnjutaToken *token);
+gboolean anjuta_token_is_empty (AnjutaToken *token);
void anjuta_token_dump (AnjutaToken *token);
gboolean anjuta_token_check (AnjutaToken *token);
diff --git a/plugins/am-project/ac-parser.y b/plugins/am-project/ac-parser.y
index a8e0539..943fd3f 100644
--- a/plugins/am-project/ac-parser.y
+++ b/plugins/am-project/ac-parser.y
@@ -256,6 +256,7 @@ arg_list_body:
//anjuta_token_dump ($2);
//fprintf(stdout, "arg_list_body arg\n");
//anjuta_token_dump ($3);
+ anjuta_token_merge ($1, $2);
anjuta_token_merge ($1, $3);
//fprintf(stdout, "arg_list_body merge\n");
//anjuta_token_dump ($1);
diff --git a/plugins/am-project/ac-scanner.l b/plugins/am-project/ac-scanner.l
index 6ec7db9..09c1294 100644
--- a/plugins/am-project/ac-scanner.l
+++ b/plugins/am-project/ac-scanner.l
@@ -219,7 +219,7 @@ amp_ac_scanner_parse_token (AmpAcScanner *scanner, AnjutaToken *token, gint star
AnjutaToken *first;
AnjutaTokenStream *stream;
- stream = anjuta_token_stream_push (scanner->stream, token, NULL);
+ stream = anjuta_token_stream_push (scanner->stream, NULL, token, NULL);
first = anjuta_token_stream_get_root (stream);
if (scanner->stream != NULL)
diff --git a/plugins/am-project/am-parser.y b/plugins/am-project/am-parser.y
index 1c5b0b6..ab7bc2e 100644
--- a/plugins/am-project/am-parser.y
+++ b/plugins/am-project/am-parser.y
@@ -31,7 +31,8 @@
%}
-%token EOL '\n'
+%token END_OF_FILE
+%token END_OF_LINE '\n'
%token SPACE
%token TAB '\t'
%token HASH '#'
@@ -157,7 +158,6 @@ amp_am_automake_variable (AnjutaToken *token)
%}
-
%%
file:
@@ -165,27 +165,14 @@ file:
| file statement
;
-/*statement:
- end_of_line
- | space end_of_line
- | definition end_of_line
- | am_variable end_of_line
- | rule command_list
- | include
- ;*/
-
statement:
end_of_line
| space end_of_line
| definition end_of_line
| am_variable end_of_line
| include end_of_line
- | line end_of_line {
- g_message ("line");
- }
- | rule command_list {
- g_message ("rule");
- }
+ | line end_of_line
+ | rule command_list
;
am_variable:
@@ -206,21 +193,34 @@ am_variable:
include:
optional_space include_token value_list {
- amp_am_scanner_include (scanner, $3);
+ $$ = anjuta_token_new_static (ANJUTA_TOKEN_LIST, NULL);
+ anjuta_token_merge ($$, $2);
+ anjuta_token_merge ($$, $3);
+ amp_am_scanner_include (scanner, $$);
}
definition:
head_list equal_token value_list {
- g_message ("definition %s", anjuta_token_evaluate ($1));
+ $$ = anjuta_token_new_static (ANJUTA_TOKEN_DEFINITION, NULL);
+ anjuta_token_merge_own_children ($1);
+ anjuta_token_merge ($$, $1);
+ anjuta_token_merge ($$, $2);
+ anjuta_token_merge ($$, $3);
+ amp_am_scanner_update_variable (scanner, $$);
}
| head_list equal_token {
- g_message ("definition %s", anjuta_token_evaluate ($1));
+ $$ = anjuta_token_new_static (ANJUTA_TOKEN_DEFINITION, NULL);
+ anjuta_token_merge_own_children ($1);
+ anjuta_token_merge ($$, $1);
+ anjuta_token_merge ($$, $2);
+ amp_am_scanner_update_variable (scanner, $$);
}
;
rule:
depend_list end_of_line
- | depend_list SEMI_COLON command_line EOL
+ | depend_list SEMI_COLON command_line END_OF_LINE
+ | depend_list SEMI_COLON command_line END_OF_FILE
;
depend_list:
@@ -229,7 +229,8 @@ depend_list:
command_list:
/* empty */
- | command_list TAB command_line EOL
+ | command_list TAB command_line END_OF_LINE
+ | command_list TAB command_line END_OF_FILE
;
line:
@@ -238,9 +239,12 @@ line:
/* Lists
*----------------------------------------------------------------------------*/
-
+
end_of_line:
- EOL {
+ END_OF_LINE {
+ $$ = NULL;
+ }
+ | END_OF_FILE {
$$ = NULL;
}
| comment {
@@ -249,7 +253,7 @@ end_of_line:
;
comment:
- HASH not_eol_list EOL
+ HASH not_eol_list END_OF_LINE
;
not_eol_list:
@@ -352,29 +356,19 @@ head:
| head variable_token
;
-/*value:
+value:
value_token {
$$ = anjuta_token_new_static (ANJUTA_TOKEN_ARGUMENT, NULL);
anjuta_token_merge ($$, $1);
}
- | space_token {
+ | variable {
$$ = anjuta_token_new_static (ANJUTA_TOKEN_ARGUMENT, NULL);
- anjuta_token_merge ($$, $1);
+ anjuta_token_insert_after ($1, $$);
}
| value value_token {
anjuta_token_merge ($1, $2);
}
- | value space_token {
- anjuta_token_merge ($1, $2);
- }
- ;*/
-
-value:
- value_token {
- $$ = anjuta_token_new_static (ANJUTA_TOKEN_ARGUMENT, NULL);
- anjuta_token_merge ($$, $1);
- }
- | value value_token {
+ | value variable {
anjuta_token_merge ($1, $2);
}
;
@@ -390,6 +384,12 @@ name_prerequisite:
| name_prerequisite variable_token
;
+variable:
+ variable_token {
+ amp_am_scanner_parse_variable (scanner, $$);
+ }
+ ;
+
/* Tokens
*----------------------------------------------------------------------------*/
@@ -416,7 +416,6 @@ command_token:
value_token:
name_token
- | variable_token
| equal_token
| rule_token
| depend_token
diff --git a/plugins/am-project/am-project.c b/plugins/am-project/am-project.c
index 89052c2..83b518b 100644
--- a/plugins/am-project/am-project.c
+++ b/plugins/am-project/am-project.c
@@ -86,6 +86,14 @@ typedef enum {
AM_GROUP_TOKEN_LAST
} AmpGroupTokenCategory;
+typedef struct _AmpVariable AmpVariable;
+
+struct _AmpVariable {
+ gchar *name;
+ AnjutaTokenType assign;
+ AnjutaToken *value;
+};
+
typedef struct _AmpRootData AmpRootData;
struct _AmpRootData {
@@ -101,6 +109,7 @@ struct _AmpGroupData {
AnjutaTokenFile *tfile; /* Corresponding Makefile */
GList *tokens[AM_GROUP_TOKEN_LAST]; /* List of token used by this group */
AnjutaToken *make_token;
+ GHashTable *variables;
};
typedef enum _AmpTargetFlag
@@ -737,6 +746,44 @@ amp_project_free_module_hash (AmpProject *project)
}
}
+/* Variable object
+ *---------------------------------------------------------------------------*/
+
+static const gchar *
+amp_variable_get_name (AmpVariable *variable)
+{
+ return variable->name;
+}
+
+static gchar *
+amp_variable_evaluate (AmpVariable *variable, AmpProject *project)
+{
+ return anjuta_token_evaluate (variable->value);
+}
+
+static AmpVariable*
+amp_variable_new (gchar *name, AnjutaTokenType assign, AnjutaToken *value)
+{
+ AmpVariable *variable = NULL;
+
+ g_return_val_if_fail (name != NULL, NULL);
+
+ variable = g_slice_new0(AmpVariable);
+ variable->name = g_strdup (name);
+ variable->assign = assign;
+ variable->value = value;
+
+ return variable;
+}
+
+static void
+amp_variable_free (AmpVariable *variable)
+{
+ g_free (variable->name);
+
+ g_slice_free (AmpVariable, variable);
+}
+
/* Group objects
*---------------------------------------------------------------------------*/
@@ -803,7 +850,7 @@ amp_group_set_makefile (AmpGroup *node, GFile *makefile, AmpProject* project)
token = anjuta_token_file_load (group->tfile, NULL);
scanner = amp_am_scanner_new (project, node);
- group->make_token = amp_am_scanner_parse_token (scanner, token, makefile, NULL);
+ group->make_token = amp_am_scanner_parse_token (scanner, anjuta_token_new_static (ANJUTA_TOKEN_FILE, NULL), token, makefile, NULL);
amp_am_scanner_free (scanner);
}
else
@@ -833,6 +880,8 @@ amp_group_new (GFile *file, gboolean dist_only)
ANJUTA_PROJECT_CAN_REMOVE |
ANJUTA_PROJECT_CAN_SAVE;
group->dist_only = dist_only;
+ group->variables = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify)amp_variable_free);
+
return g_node_new (group);
}
@@ -852,7 +901,7 @@ amp_group_free (AmpGroup *node)
if (group->tokens[i] != NULL) g_list_free (group->tokens[i]);
}
g_slice_free (AmpGroupData, group);
-
+ if (group->variables) g_hash_table_destroy (group->variables);
g_node_destroy (node);
}
@@ -1162,7 +1211,7 @@ amp_project_load_properties (AmpProject *project, AnjutaToken *macro, AnjutaToke
{
AnjutaProjectProperty *item;
- //fprintf (stdout, "property list:\n");
+ //fprintf (stderr, "property list:\n");
//anjuta_token_dump (args);
project->ac_init = macro;
@@ -1276,7 +1325,7 @@ amp_project_load_config (AmpProject *project, AnjutaToken *arg_list)
/* File list */
scanner = amp_ac_scanner_new (project);
- fprintf (stdout, "\nParse list\n");
+ fprintf (stderr, "\nParse list\n");
arg = anjuta_token_first_item (arg_list);
list = amp_ac_scanner_parse_token (scanner, arg, AC_SPACE_LIST_STATE, NULL);
@@ -1356,7 +1405,7 @@ project_load_target (AmpProject *project, AnjutaToken *name, AnjutaTokenType tok
split_automake_variable (value, &flags, &install, NULL);
amp_group_add_token (parent, name, AM_GROUP_TARGET);
-
+
for (arg = anjuta_token_first_word (list); arg != NULL; arg = anjuta_token_next_word (arg))
{
gchar *value;
@@ -1367,7 +1416,10 @@ project_load_target (AmpProject *project, AnjutaToken *name, AnjutaTokenType tok
gpointer find;
value = anjuta_token_evaluate (arg);
- canon_id = canonicalize_automake_variable (value);
+
+ /* This happens for variable token which are considered as value */
+ if (value == NULL) continue;
+ canon_id = canonicalize_automake_variable (value);
/* Check if target already exists */
find = value;
@@ -1815,7 +1867,7 @@ project_load_makefile (AmpProject *project, GFile *file, AnjutaProjectNode *pare
return group;
}
- /* Parse makefile.am */
+ /* Parse makefile.am */
DEBUG_PRINT ("Parse: %s", g_file_get_uri (makefile));
tfile = amp_group_set_makefile (group, makefile, project);
g_hash_table_insert (project->files, makefile, tfile);
@@ -1882,6 +1934,7 @@ amp_project_set_am_variable (AmpProject* project, AmpGroup* group, AnjutaTokenTy
}
}
+
/* Public functions
*---------------------------------------------------------------------------*/
@@ -1951,15 +2004,15 @@ amp_project_load_root (AmpProject *project, AnjutaProjectNode *node, GError **er
g_hash_table_insert (project->files, configure_file, project->configure_file);
g_object_add_toggle_ref (G_OBJECT (project->configure_file), remove_config_file, project);
arg = anjuta_token_file_load (project->configure_file, NULL);
- //fprintf (stdout, "AC file before parsing\n");
+ //fprintf (stderr, "AC file before parsing\n");
//anjuta_token_dump (arg);
- //fprintf (stdout, "\n");
+ //fprintf (stderr, "\n");
scanner = amp_ac_scanner_new (project);
project->configure_token = amp_ac_scanner_parse_token (scanner, arg, 0, &err);
- //fprintf (stdout, "AC file after parsing\n");
+ //fprintf (stderr, "AC file after parsing\n");
//anjuta_token_check (arg);
//anjuta_token_dump (project->configure_token);
- //fprintf (stdout, "\n");
+ //fprintf (stderr, "\n");
amp_ac_scanner_free (scanner);
if (project->configure_token == NULL)
{
@@ -3412,6 +3465,57 @@ amp_group_get_id (AmpGroup *group)
return g_file_get_uri (AMP_GROUP_DATA (group)->base.file);
}
+void
+amp_group_update_variable (AmpGroup *group, AnjutaToken *variable)
+{
+ AnjutaToken *arg;
+ char *name = NULL;
+ AnjutaToken *value = NULL;
+ AmpVariable *var;
+
+ arg = anjuta_token_first_item (variable);
+ name = g_strstrip (anjuta_token_evaluate (arg));
+ arg = anjuta_token_next_item (arg);
+ value = anjuta_token_next_item (arg);
+
+ var = (AmpVariable *)g_hash_table_lookup (AMP_GROUP_DATA (group)->variables, name);
+ if (var != NULL)
+ {
+ var->value = value;
+ }
+ else
+ {
+ var = amp_variable_new (name, 0, value);
+ g_hash_table_insert (AMP_GROUP_DATA (group)->variables, var->name, var);
+ }
+
+ if (name) g_free (name);
+}
+
+AnjutaToken*
+amp_group_get_variable_token (AmpGroup *group, AnjutaToken *variable)
+{
+ guint length;
+ const gchar *string;
+ gchar *name;
+ AmpVariable *var;
+
+ length = anjuta_token_get_length (variable);
+ string = anjuta_token_get_string (variable);
+ if (string[1] == '(')
+ {
+ name = g_strndup (string + 2, length - 3);
+ }
+ else
+ {
+ name = g_strndup (string + 1, 1);
+ }
+ var = g_hash_table_lookup (AMP_GROUP_DATA (group)->variables, name);
+ g_free (name);
+
+ return var != NULL ? var->value : NULL;
+}
+
/* Target access functions
*---------------------------------------------------------------------------*/
diff --git a/plugins/am-project/am-project.h b/plugins/am-project/am-project.h
index 087521b..6a45f89 100644
--- a/plugins/am-project/am-project.h
+++ b/plugins/am-project/am-project.h
@@ -89,7 +89,6 @@ void amp_project_load_config (AmpProject *project, AnjutaToken *arg_list);
void amp_project_load_properties (AmpProject *project, AnjutaToken *macro, AnjutaToken *list);
void amp_project_load_module (AmpProject *project, AnjutaToken *module);
-
AmpGroup *amp_project_get_root (AmpProject *project);
AmpGroup *amp_project_get_group (AmpProject *project, const gchar *id);
AmpTarget *amp_project_get_target (AmpProject *project, const gchar *id);
@@ -139,6 +138,8 @@ void amp_node_all_foreach (AnjutaProjectNode *node, AnjutaProjectNodeFunc func,
GFile *amp_group_get_directory (AmpGroup *group);
GFile *amp_group_get_makefile (AmpGroup *group);
gchar *amp_group_get_id (AmpGroup *group);
+void amp_group_update_variable (AmpGroup *group, AnjutaToken *variable);
+AnjutaToken* amp_group_get_variable_token (AmpGroup *group, AnjutaToken *variable);
const gchar *amp_target_get_name (AmpTarget *target);
gchar *amp_target_get_id (AmpTarget *target);
diff --git a/plugins/am-project/am-scanner.h b/plugins/am-project/am-scanner.h
index c1ed3b1..59eb367 100644
--- a/plugins/am-project/am-scanner.h
+++ b/plugins/am-project/am-scanner.h
@@ -39,10 +39,11 @@ typedef struct _AmpAmScanner AmpAmScanner;
AmpAmScanner *amp_am_scanner_new (AmpProject *project, AmpGroup *group);
void amp_am_scanner_free (AmpAmScanner *scanner);
-AnjutaToken *amp_am_scanner_parse_token (AmpAmScanner *scanner, AnjutaToken *token, GFile *filename, GError **error);
+AnjutaToken *amp_am_scanner_parse_token (AmpAmScanner *scanner, AnjutaToken *root, AnjutaToken *content, GFile *filename, GError **error);
void amp_am_scanner_set_am_variable (AmpAmScanner *scanner, AnjutaTokenType variable, AnjutaToken *name, AnjutaToken *list);
void amp_am_scanner_include (AmpAmScanner *scanner, AnjutaToken *name);
+void amp_am_scanner_update_variable (AmpAmScanner *scanner, AnjutaToken *variable);
void amp_am_yyerror (YYLTYPE *loc, AmpAmScanner *scanner, char const *s);
diff --git a/plugins/am-project/am-scanner.l b/plugins/am-project/am-scanner.l
index 29b77bb..440ee29 100644
--- a/plugins/am-project/am-scanner.l
+++ b/plugins/am-project/am-scanner.l
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
+
%{
#include "am-scanner.h"
@@ -35,7 +35,7 @@
#define YY_DECL static int am_yylex (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner)
-#define YY_USER_INIT {yy_flex_debug = 1;}
+//#define YY_USER_INIT {yy_flex_debug = 1;}
static int amp_am_scanner_parse_end (AmpAmScanner *scanner);
@@ -44,13 +44,14 @@ static int amp_am_scanner_parse_end (AmpAmScanner *scanner);
struct _AmpAmScanner
{
- yyscan_t scanner;
+ yyscan_t scanner;
AnjutaTokenStream *stream;
- AmpProject *project;
- AmpGroup *group;
+ AmpProject *project;
+ AmpGroup *group;
GHashTable *orphan_properties;
+ gboolean eof;
};
%}
@@ -74,7 +75,9 @@ NAME [^ \t\n\r:#=$"'`&@\\]*
%%
-<INITIAL>\n { RETURN (EOL); }
+<INITIAL><<EOF>> { gint ret = amp_am_scanner_parse_end (yyextra); if (ret !=1) return ret; }
+
+<INITIAL>\n { RETURN (END_OF_LINE); }
<INITIAL>([ ]|\\\n)([ \t]|\\\n)* { RETURN (SPACE); }
@@ -82,7 +85,7 @@ NAME [^ \t\n\r:#=$"'`&@\\]*
<INITIAL>([ ]|\\\n)([ \t]|\\\n)* { RETURN (SPACE); }
-<INITIAL>([ \t])*#.*\n { RETURN (EOL); }
+<INITIAL>([ \t])*#.*\n { RETURN (END_OF_LINE); }
<INITIAL>\t { RETURN (TAB); }
@@ -202,16 +205,23 @@ NAME [^ \t\n\r:#=$"'`&@\\]*
static gint
amp_am_scanner_parse_end (AmpAmScanner *scanner)
{
- yypop_buffer_state(scanner->scanner);
- scanner->stream = anjuta_token_stream_pop (scanner->stream);
-
if (scanner->stream == NULL)
{
yyterminate();
}
else
{
- return 1;
+ yypop_buffer_state(scanner->scanner);
+ scanner->stream = anjuta_token_stream_pop (scanner->stream);
+
+ if (scanner->stream == NULL)
+ {
+ yyterminate();
+ }
+ else
+ {
+ return 1;
+ }
}
}
@@ -241,43 +251,46 @@ amp_am_scanner_set_am_variable (AmpAmScanner *scanner, AnjutaTokenType variable,
}
void
-amp_am_scanner_include (AmpAmScanner *scanner, AnjutaToken *name)
+amp_am_scanner_include (AmpAmScanner *scanner, AnjutaToken *list)
{
GFile *file;
AnjutaTokenFile *include;
AnjutaToken *token;
+ AnjutaToken *name;
gchar *filename;
+ name = anjuta_token_first_item (list);
+ name = anjuta_token_next_item (name);
filename = g_strstrip (anjuta_token_evaluate (name));
g_message ("read include =%s=", filename);
file = g_file_resolve_relative_path (anjuta_token_stream_get_current_directory (scanner->stream), filename);
g_free (filename);
include = anjuta_token_file_new (file);
token = anjuta_token_file_load (include, NULL);
- //g_message ("read file =%s= arg %p", g_file_get_path (file), token);
- amp_am_scanner_parse_token (scanner, token, file, NULL);
+ amp_am_scanner_parse_token (scanner, list, token, file, NULL);
g_object_unref (file);
}
void
+amp_am_scanner_update_variable (AmpAmScanner *scanner, AnjutaToken *variable)
+{
+ amp_group_update_variable (scanner->group, variable);
+}
+
+
+void
amp_am_scanner_parse_variable (AmpAmScanner *scanner, AnjutaToken *variable)
{
- AnjutaToken *group;
+ AnjutaToken *value;
AnjutaToken *content;
anjuta_token_set_type (variable, ANJUTA_TOKEN_VARIABLE);
- content = anjuta_token_new_static (ANJUTA_TOKEN_CONTENT, NULL);
- anjuta_token_stream_append_token (scanner->stream, content);
- /*group = mkp_project_get_variable_token (scanner->project, variable);
- fprintf(stdout, "get variable %s is %p\n", anjuta_token_evaluate (variable), group);
- if (group != NULL)
+ value = amp_group_get_variable_token (scanner->group, variable);
+ if (value != NULL)
{
- fprintf (stdout,"variable %s\n", anjuta_token_get_string (variable));
- //anjuta_token_dump (group);
- amp_am_scanner_parse_token (scanner, group, NULL, NULL);
- //anjuta_token_free (token);
- }*/
+ amp_am_scanner_parse_token (scanner, variable, value, NULL, NULL);
+ }
}
@@ -285,12 +298,12 @@ amp_am_scanner_parse_variable (AmpAmScanner *scanner, AnjutaToken *variable)
*---------------------------------------------------------------------------*/
AnjutaToken *
-amp_am_scanner_parse_token (AmpAmScanner *scanner, AnjutaToken *token, GFile *filename, GError **error)
+amp_am_scanner_parse_token (AmpAmScanner *scanner, AnjutaToken *root, AnjutaToken *content, GFile *filename, GError **error)
{
AnjutaToken *first;
AnjutaTokenStream *stream;
- stream = anjuta_token_stream_push (scanner->stream, token, filename);
+ stream = anjuta_token_stream_push (scanner->stream, root, content, filename);
first = anjuta_token_stream_get_root (stream);
if (scanner->stream != NULL)
@@ -341,8 +354,9 @@ amp_am_scanner_new (AmpProject *project, AmpGroup *group)
scanner = g_new0 (AmpAmScanner, 1);
- scanner->project = project;
- scanner->group = group;
+ scanner->project = project;
+ scanner->group = group;
+ scanner->eof = FALSE;
/* Create hash table for sources list */
scanner->orphan_properties = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify)g_free, (GDestroyNotify)amp_target_property_buffer_free);
diff --git a/plugins/am-project/tests/anjuta.at b/plugins/am-project/tests/anjuta.at
index 5da034d..6aa003f 100644
--- a/plugins/am-project/tests/anjuta.at
+++ b/plugins/am-project/tests/anjuta.at
@@ -1,5 +1,5 @@
AT_SETUP([Load anjuta project])
-AT_PARSER_CHECK([load $at_top_srcdir \
+AT_PARSER_CHECK([load ../../$at_top_srcdir \
list])
-AT_CHECK([diff output $at_srcdir/anjuta.lst])
+AT_CHECK([diff output ../../$at_srcdir/anjuta.lst])
AT_CLEANUP
diff --git a/plugins/am-project/tests/anjuta.lst b/plugins/am-project/tests/anjuta.lst
index 7bee5e1..3429164 100644
--- a/plugins/am-project/tests/anjuta.lst
+++ b/plugins/am-project/tests/anjuta.lst
@@ -142,8 +142,69 @@
SOURCE (19:4:0:0:58): libanjuta/interfaces/ianjuta-vcs.c
SOURCE (19:4:0:0:59): libanjuta/interfaces/ianjuta-wizard.c
SOURCE (19:4:0:0:60): libanjuta/interfaces/libanjuta-iface-marshallers.c
- TARGET (19:4:0:1): $(libanjuta_interfaces_include)
- TARGET (19:4:0:2): $(files_idl)
+ TARGET (19:4:0:1): ianjuta-buildable.h
+ TARGET (19:4:0:2): ianjuta-builder.h
+ TARGET (19:4:0:3): ianjuta-debug-manager.h
+ TARGET (19:4:0:4): ianjuta-debugger.h
+ TARGET (19:4:0:5): ianjuta-debugger-breakpoint.h
+ TARGET (19:4:0:6): ianjuta-debugger-instruction.h
+ TARGET (19:4:0:7): ianjuta-debugger-memory.h
+ TARGET (19:4:0:8): ianjuta-debugger-register.h
+ TARGET (19:4:0:9): ianjuta-debugger-variable.h
+ TARGET (19:4:0:10): ianjuta-document.h
+ TARGET (19:4:0:11): ianjuta-document-manager.h
+ TARGET (19:4:0:12): ianjuta-editor.h
+ TARGET (19:4:0:13): ianjuta-editor-assist.h
+ TARGET (19:4:0:14): ianjuta-editor-cell.h
+ TARGET (19:4:0:15): ianjuta-editor-cell-style.h
+ TARGET (19:4:0:16): ianjuta-editor-comment.h
+ TARGET (19:4:0:17): ianjuta-editor-convert.h
+ TARGET (19:4:0:18): ianjuta-editor-factory.h
+ TARGET (19:4:0:19): ianjuta-editor-folds.h
+ TARGET (19:4:0:20): ianjuta-editor-goto.h
+ TARGET (19:4:0:21): ianjuta-editor-hover.h
+ TARGET (19:4:0:22): ianjuta-editor-language.h
+ TARGET (19:4:0:23): ianjuta-editor-line-mode.h
+ TARGET (19:4:0:24): ianjuta-editor-search.h
+ TARGET (19:4:0:25): ianjuta-editor-selection.h
+ TARGET (19:4:0:26): ianjuta-editor-tip.h
+ TARGET (19:4:0:27): ianjuta-editor-view.h
+ TARGET (19:4:0:28): ianjuta-editor-zoom.h
+ TARGET (19:4:0:29): ianjuta-environment.h
+ TARGET (19:4:0:30): ianjuta-file.h
+ TARGET (19:4:0:31): ianjuta-file-loader.h
+ TARGET (19:4:0:32): ianjuta-file-manager.h
+ TARGET (19:4:0:33): ianjuta-file-savable.h
+ TARGET (19:4:0:34): ianjuta-help.h
+ TARGET (19:4:0:35): ianjuta-indicable.h
+ TARGET (19:4:0:36): ianjuta-iterable.h
+ TARGET (19:4:0:37): ianjuta-iterable-tree.h
+ TARGET (19:4:0:38): ianjuta-language.h
+ TARGET (19:4:0:39): ianjuta-language-support.h
+ TARGET (19:4:0:40): ianjuta-loader.h
+ TARGET (19:4:0:41): ianjuta-macro.h
+ TARGET (19:4:0:42): ianjuta-markable.h
+ TARGET (19:4:0:43): ianjuta-message-manager.h
+ TARGET (19:4:0:44): ianjuta-message-view.h
+ TARGET (19:4:0:45): ianjuta-plugin-factory.h
+ TARGET (19:4:0:46): ianjuta-preferences.h
+ TARGET (19:4:0:47): ianjuta-print.h
+ TARGET (19:4:0:48): ianjuta-project.h
+ TARGET (19:4:0:49): ianjuta-project-backend.h
+ TARGET (19:4:0:50): ianjuta-project-manager.h
+ TARGET (19:4:0:51): ianjuta-provider.h
+ TARGET (19:4:0:52): ianjuta-stream.h
+ TARGET (19:4:0:53): ianjuta-stream-loader.h
+ TARGET (19:4:0:54): ianjuta-stream-savable.h
+ TARGET (19:4:0:55): ianjuta-symbol.h
+ TARGET (19:4:0:56): ianjuta-symbol-manager.h
+ TARGET (19:4:0:57): ianjuta-terminal.h
+ TARGET (19:4:0:58): ianjuta-todo.h
+ TARGET (19:4:0:59): ianjuta-vcs.h
+ TARGET (19:4:0:60): ianjuta-wizard.h
+ TARGET (19:4:0:61): libanjuta-iface-marshallers.h
+ TARGET (19:4:0:62): libanjuta-interfaces.h
+ TARGET (19:4:0:63): libanjuta.idl
TARGET (19:4:1): libanjuta.la
SOURCE (19:4:1:0): libanjuta/anjuta-enum-types.h
SOURCE (19:4:1:1): libanjuta/anjuta-enum-types.c
@@ -213,10 +274,44 @@
SOURCE (19:4:2:0): libanjuta/anjuta-glade-catalog.c
TARGET (19:4:3): catalog
SOURCE (19:4:3:0): libanjuta/anjuta-glade.xml
- TARGET (19:4:4): $(libanjuta_include)
- TARGET (19:4:5): anjuta-enum-types.h
- TARGET (19:4:6): pkgconfig
- SOURCE (19:4:6:0): libanjuta/libanjuta-1.0.pc
+ TARGET (19:4:4): libanjuta.h
+ TARGET (19:4:5): anjuta-debug.h
+ TARGET (19:4:6): anjuta-shell.h
+ TARGET (19:4:7): anjuta-status.h
+ TARGET (19:4:8): anjuta-encodings.h
+ TARGET (19:4:9): anjuta-convert.h
+ TARGET (19:4:10): anjuta-plugin.h
+ TARGET (19:4:11): anjuta-plugin-description.h
+ TARGET (19:4:12): anjuta-plugin-manager.h
+ TARGET (19:4:13): anjuta-plugin-handle.h
+ TARGET (19:4:14): anjuta-profile.h
+ TARGET (19:4:15): anjuta-profile-manager.h
+ TARGET (19:4:16): anjuta-marshal.h
+ TARGET (19:4:17): anjuta-utils.h
+ TARGET (19:4:18): anjuta-preferences-dialog.h
+ TARGET (19:4:19): anjuta-preferences.h
+ TARGET (19:4:20): anjuta-ui.h
+ TARGET (19:4:21): anjuta-launcher.h
+ TARGET (19:4:22): anjuta-session.h
+ TARGET (19:4:23): anjuta-save-prompt.h
+ TARGET (19:4:24): anjuta-serializer.h
+ TARGET (19:4:25): anjuta-error.h
+ TARGET (19:4:26): resources.h
+ TARGET (19:4:27): anjuta-vcs-status-tree-view.h
+ TARGET (19:4:28): anjuta-vcs-status.h
+ TARGET (19:4:29): anjuta-command.h
+ TARGET (19:4:30): anjuta-async-command.h
+ TARGET (19:4:31): anjuta-async-notify.h
+ TARGET (19:4:32): anjuta-sync-command.h
+ TARGET (19:4:33): anjuta-version.h
+ TARGET (19:4:34): gbf-project.h
+ TARGET (19:4:35): anjuta-project.h
+ TARGET (19:4:36): anjuta-command-queue.h
+ TARGET (19:4:37): anjuta-tabber.h
+ TARGET (19:4:38): anjuta-token.h
+ TARGET (19:4:39): anjuta-enum-types.h
+ TARGET (19:4:40): pkgconfig
+ SOURCE (19:4:40:0): libanjuta/libanjuta-1.0.pc
GROUP (19:5): plugins
GROUP (19:5:0): gtodo
TARGET (19:5:0:0): gtodo_ui
@@ -1337,7 +1432,6 @@
SOURCE (19:5:24:8:33): plugins/symbol-db/symbol-db-views.h
SOURCE (19:5:24:8:34): plugins/symbol-db/libgda-extra/gda-data-model-concat.c
SOURCE (19:5:24:8:35): plugins/symbol-db/libgda-extra/gda-data-model-concat.h
- SOURCE (19:5:24:8:36): plugins/symbol-db/$(BUILT_SOURCES)
GROUP (19:5:25): git
TARGET (19:5:25:0): git_glade
SOURCE (19:5:25:0:0): plugins/git/anjuta-git.ui
@@ -1734,6 +1828,9 @@
SOURCE (19:6:4:7): src/action-callbacks.h
SOURCE (19:6:4:8): src/action-callbacks.c
SOURCE (19:6:4:9): src/main.c
+ TARGET (19:6:5): anjuta-shell
+ SOURCE (19:6:5:0): src/shell.c
+ SOURCE (19:6:5:1): src/shell.h
GROUP (19:7): manuals
GROUP (19:7:0): reference
GROUP (19:7:0:0): libanjuta
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]