Changeset 9ace5d2 for app/src


Ignore:
Timestamp:
12/11/08 22:20:14 (16 years ago)
Author:
obrebski <obrebski@…>
Branches:
master, help
Children:
2d89d4b
Parents:
91ed676
git-author:
obrebski <obrebski@…> (12/11/08 22:20:14)
git-committer:
obrebski <obrebski@…> (12/11/08 22:20:14)
Message:

trochę zmian

M app/doc/utt.texinfo
M app/src/dgp/sgraph.hh
M app/src/dgp/const.hh
M app/src/dgp/grammar.hh
M app/src/dgp/thesymbols.hh
M app/src/dgp/dgc
M app/src/dgp/sgraph.cc
M app/src/dgp/grammar.cc

git-svn-id: svn://atos.wmid.amu.edu.pl/utt@63 e293616e-ec6a-49c2-aa92-f4a8b91c5d16

Location:
app/src/dgp
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • app/src/dgp/const.hh

    r0214596 r9ace5d2  
    33 
    44#define MAXTYPES 32 
     5#define MAXFLAGS 64 
    56#define MAXNODES 1024 
    67#define MAXCONSTRS 32 
  • app/src/dgp/dgc

    r3748bd1 r9ace5d2  
    9898my $nreq=0; 
    9999my $nlink=0; 
     100my $nflag=0; 
    100101 
    101102my %cats; 
     
    113114        open(OUTPUT, ">$outputfile") or die("Can't open output file: $outputfile!"); 
    114115} 
    115  
    116116 
    117117 
     
    192192            } 
    193193        } 
     194    } 
     195    elsif(/^FLAG\s+\S+$/) 
     196    { 
     197        ++$nflag; 
     198        print OUTPUT "$_\n" 
    194199    } 
    195200    elsif(/^$/) { 
     
    249254printf STDERR "%6d RIGHT statements\n", $nright; 
    250255printf STDERR "%6d LINK  statements\n", $nlink; 
     256printf STDERR "%6d FLAG  statements\n", $nflag; 
    251257 
    252258 
  • app/src/dgp/grammar.cc

    r0214596 r9ace5d2  
    4444    lt.resize(types_sz); 
    4545    gt.resize(types_sz); 
     46  } 
     47} 
     48 
     49void Grammar::add_flag(const char* s) 
     50 
     51  Flag::add(s); 
     52  if(Flag::count()>flags_sz) 
     53  { 
     54    flags_sz += 16; 
     55    pass.resize(flags_sz); 
    4656  } 
    4757} 
     
    124134        set_connect(arg1,arg2,arg3); 
    125135    } 
     136    // FLAG DECLARATION 
     137    else if(strcmp(key,"FLAG")==0 && fields>=2) 
     138    {  
     139      add_flag(arg1); 
     140    } 
    126141 
    127142    else fprintf(stderr,"Invalid line %d. Ignored.\n", lineno); 
     
    160175        if(connect[c][d].count(t)) 
    161176          fprintf(f,"LINK\t%s\t%s\t%s\n",c.str(),d.str(),t.str()); 
     177 
     178  for(Flag i=1; i<Flag::count(); ++i) 
     179    fprintf(f,"FLAG\t%s\n",i.str()); 
    162180} 
    163181 
  • app/src/dgp/grammar.hh

    r3748bd1 r9ace5d2  
    1111#include "sgraph.hh" 
    1212 
     13 
     14class Link 
     15{ 
     16  Role role; 
     17  FlagSet hflags; 
     18  FlagSet dflags; 
     19} 
     20 
     21 
    1322class Grammar 
    1423{ 
     
    1827  //  enum CONSTR { SGL, OBL, LEFT, RIGHT, INIT, NONINIT, FIN, NONFIN }; 
    1928 
    20   Grammar() : types_sz(0), cats_sz(0) {} ; 
     29  Grammar() : types_sz(0), cats_sz(0), flags_sz(0) {} ; 
    2130   
    2231  int types_sz; 
    2332  int cats_sz; 
     33  int flags_sz; 
    2434 
    2535  vector< vector< Roles > >    connect; 
     
    3141  vector< RoleSet >            gt; 
    3242 
     43 
     44  //  vector< vector< vector< 
     45  vector< FlagSet >            set; 
     46  vector< FlagSet >            pass; 
     47 
    3348  bool read(FILE* f); 
    3449  void write(FILE* f); 
     
    3651  void add_category(const char* s); 
    3752  void add_type(const char* s); 
     53  void add_flag(const char* s); 
    3854 
    3955  void set_sgl(Role r)           { sgl.set(r); } 
  • app/src/dgp/sgraph.cc

    r0214596 r9ace5d2  
    128128  { 
    129129    buf+=sprintf(buf,";"); 
     130    int cont=0; 
    130131    for(Role i=1; i<=Role::count(); ++i) 
    131       if(node.prop.forbidden[i]) buf+=sprintf(buf,"!%s",i.str()); 
     132      if(node.prop.forbidden[i]) buf+=sprintf(buf,"%s!%s",(cont++)?",":"",i.str()); 
    132133    for(Role i=1; i<=Role::count(); ++i) 
    133       if(node.prop.required[i]) buf+=sprintf(buf,"&%s",i.str()); 
     134      if(node.prop.required[i]) buf+=sprintf(buf,"%s&%s",(cont++)?",":"",i.str()); 
    134135  } 
    135136   
     
    140141 
    141142 
    142 int SGraph::sprint_node_debug(char* buf, char* pref, int n) 
     143int SGraph::sprint_node_debug(char* buf, const char* pref, int n) 
    143144{ 
    144145  char *buf0 = buf; 
     
    149150} 
    150151 
    151 int SGraph::print_node_debug(FILE* f, char* pref, int n) 
     152int SGraph::print_node_debug(FILE* f, const char* pref, int n) 
    152153{ 
    153154  char buf[1000]; 
  • app/src/dgp/sgraph.hh

    r0214596 r9ace5d2  
    8888  int sprint_node(char* buf, int n, unsigned int info); 
    8989  int print_node(FILE* f, int n, unsigned int info); 
    90   int sprint_node_debug(char* buf, char* pref, int n); 
    91   int print_node_debug(FILE* f, char* pref, int n); 
     90  int sprint_node_debug(char* buf, const char* pref, int n); 
     91  int print_node_debug(FILE* f, const char* pref, int n); 
    9292 
    9393  void print_arc(FILE* f, int left, int right, Role role, int dir); // 0 - left, 1 - right 
  • app/src/dgp/thesymbols.hh

    r0214596 r9ace5d2  
    2323 
    2424typedef Symbol<4> Rel; 
     25 
    2526typedef Symbol<5> Flag; 
     27typedef bitset<MAXFLAGS> FlagSet; 
    2628 
    2729#endif 
Note: See TracChangeset for help on using the changeset viewer.