Updated from branch dev
authorThadeu Lima de Souza Cascardo <cascardo@dcc.ufmg.br>
Wed, 26 Oct 2005 12:43:18 +0000 (12:43 +0000)
committerThadeu Lima de Souza Cascardo <cascardo@dcc.ufmg.br>
Wed, 26 Oct 2005 12:43:18 +0000 (12:43 +0000)
Patches applied:

 * cascardo@tlscascardo--private/libgrammatic--dev--0.1--patch-22
   Added scanner module and fixed BNF dependency on it

git-archimport-id: cascardo@tlscascardo--private/libgrammatic--nogobject-lr1--0.1--patch-8

1  2 
bnf.c

diff --combined bnf.c
--- 1/bnf.c
--- 2/bnf.c
+++ b/bnf.c
@@@ -6,7 -6,16 +6,16 @@@
  #include <unistd.h>
  #include <stdlib.h>
  
- static gint scanner_next (scanner_t* scanner, GString** val)
+ typedef enum
+   {
+     NONE = 0,
+     EQUAL = 1,
+     ID = 2,
+     STRING = 3,
+     EOL = 4
+   } token_t;
+ static gint bnf_scanner_next (scanner_t* scanner, GString** val)
  {
  
    int state;
@@@ -126,7 -135,7 +135,7 @@@ enu
      BNF_NONTERMINAL
    };
  
 -void grammar_tree (Grammar* grammar, GNode* tree)
 +void grammar_tree (grammar_t* grammar, GNode* tree)
  {
  
    GNode* child_rules;
  
  }
  
 -Grammar* grammar_load (char* filename)
 +grammar_t* grammar_load (char* filename)
  {
  
 -  Grammar* grammar;
 +  grammar_t* grammar;
    rule_t* rule;
  
    scanner_t* scanner;
 -  Rdp* parser;
 +  rdp_t* parser;
    GNode* tree;
  
    int fd;
  
    scanner = scanner_new (read, fd);
  
 -  parser = rdp_new (bnf_scanner_next, scanner, BNF_GRAMMAR);
 -  grammar = (Grammar*) parser;
 +  grammar = grammar_new ();
-   parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR, grammar);
++  parser = rdp_new (bnf_scanner_next, scanner, BNF_GRAMMAR, grammar);
  
    rule = grammar_rule_new (grammar, symbol_new (FALSE, BNF_GRAMMAR));
    rule_append (rule, symbol_new (FALSE, BNF_RULES));
  
    close (fd);
    scanner_delete (scanner);
 +  rdp_delete (parser);
 +  grammar_delete (grammar);
  
    if (tree == NULL)
      {
      }
    else
      {
 -      Grammar* gr;
 -      gr = g_object_new (GRAMMAR_TYPE, NULL);
 +      grammar_t* gr;
 +      gr = grammar_new ();
        grammar_tree (gr, tree);
        return gr;
      }