grammatica-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Grammatica-users] Negation in production rules


From: Andrew Smellie
Subject: RE: [Grammatica-users] Negation in production rules
Date: Tue, 4 May 2010 11:28:27 -0400

 
Oliver
 
Many thanks for your help. We will try tis solution asap and let you know how 
it goes
 
Regards
Andrew

________________________________

From: Oliver Gramberg [mailto:address@hidden
Sent: Tue 5/4/2010 6:27 AM
To: address@hidden
Cc: Andrew Smellie
Subject: Re: [Grammatica-users] Negation in production rules



Hello Andrew, 

try this (header omitted, output at the end): 

--------------------------------------------------------------------- 
%tokens% 

colon = ':' 
equals = '=' 
lbracket = '[' 
rbracket = ']' 

string_literal = <<"[^"]*">> 
integer_literal = <<[0-9]+>> 
real_literal = <<-?[0-9]+\.[0-9]+>> 
identifier = <<[A-Z][A-Z0-9_]*>> 

whitespace = <<[ \t]+>> %ignore% 
newline = <<[\n\r]+>> 


%productions% 

start = line+ ; 
line = contents? newline ; 
contents = key '=' values? | values ; 
key = identifier ( ':' identifier )? ( '[' integer_literal ']' )? ; 
values = value+ ; 
value = string_literal | integer_literal | real_literal | identifier ;
--------------------------------------------------------------------- 

Feel free to come back with questions! 
Regards 
Oliver


--------------------------------------------------------------------- 
Parse tree from notakey.sample: 
start(2001) 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "DATE", line: 1, col: 1 
      equals(1002): "=", line: 1, col: 5 
      values(2005) 
        value(2006) 
          string_literal(1005): ""Thu Apr 22 20:41:15 2010"", line: 1, col: 6 
    newline(1010): "(...)", line: 1, col: 32 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "METHOD", line: 3, col: 1 
      equals(1002): "=", line: 3, col: 7 
      values(2005) 
        value(2006) 
          identifier(1008): "AM1", line: 3, col: 8 
    newline(1010): "(...)", line: 3, col: 11 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "TITLE", line: 5, col: 1 
      equals(1002): "=", line: 5, col: 6 
      values(2005) 
        value(2006) 
          string_literal(1005): ""Untitled-1"", line: 5, col: 7 
    newline(1010): "(...)", line: 5, col: 19 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "KEYWORDS", line: 7, col: 1 
      equals(1002): "=", line: 7, col: 9 
      values(2005) 
        value(2006) 
          string_literal(1005): "" AUX AM1 ALLVEC CHARGE=0 (...)", line: 7, 
col: 10 
    newline(1010): "(...)", line: 7, col: 93 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "COMMENTS", line: 9, col: 1 
      equals(1002): "=", line: 9, col: 9 
      values(2005) 
        value(2006) 
          string_literal(1005): """", line: 9, col: 10 
    newline(1010): "(...)", line: 9, col: 12 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "ATOM_EL", line: 11, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 11, col: 8 
          integer_literal(1006): "0008", line: 11, col: 9 
          rbracket(1004): "]", line: 11, col: 13 
      equals(1002): "=", line: 11, col: 14 
    newline(1010): "(...)", line: 11, col: 15 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          identifier(1008): "C", line: 13, col: 1 
        value(2006) 
          identifier(1008): "C", line: 13, col: 3 
        value(2006) 
          identifier(1008): "H", line: 13, col: 5 
        value(2006) 
          identifier(1008): "H", line: 13, col: 7 
        value(2006) 
          identifier(1008): "H", line: 13, col: 9 
        value(2006) 
          identifier(1008): "H", line: 13, col: 11 
        value(2006) 
          identifier(1008): "H", line: 13, col: 13 
        value(2006) 
          identifier(1008): "H", line: 13, col: 15 
    newline(1010): "(...)", line: 13, col: 16 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "ATOM_CORE", line: 15, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 15, col: 10 
          integer_literal(1006): "0008", line: 15, col: 11 
          rbracket(1004): "]", line: 15, col: 15 
      equals(1002): "=", line: 15, col: 16 
    newline(1010): "(...)", line: 15, col: 17 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          integer_literal(1006): "4", line: 17, col: 1 
        value(2006) 
          integer_literal(1006): "4", line: 17, col: 3 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 5 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 7 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 9 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 11 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 13 
        value(2006) 
          integer_literal(1006): "1", line: 17, col: 15 
    newline(1010): "(...)", line: 17, col: 16 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "ATOM_X", line: 19, col: 1 
        key(1)(3001) 
          colon(1001): ":", line: 19, col: 7 
          identifier(1008): "ANGSTROMS", line: 19, col: 8 
        key(2)(3002) 
          lbracket(1003): "[", line: 19, col: 17 
          integer_literal(1006): "0024", line: 19, col: 18 
          rbracket(1004): "]", line: 19, col: 22 
      equals(1002): "=", line: 19, col: 23 
    newline(1010): "(...)", line: 19, col: 24 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "-0.3893", line: 21, col: 1 
        value(2006) 
          real_literal(1007): "0.6545", line: 21, col: 9 
        value(2006) 
          real_literal(1007): "0.0000", line: 21, col: 16 
    newline(1010): "(...)", line: 21, col: 22 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "0.3893", line: 23, col: 1 
        value(2006) 
          real_literal(1007): "-0.6545", line: 23, col: 8 
        value(2006) 
          real_literal(1007): "0.0000", line: 23, col: 16 
    newline(1010): "(...)", line: 23, col: 22 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "0.3150", line: 25, col: 1 
        value(2006) 
          real_literal(1007): "1.5163", line: 25, col: 8 
        value(2006) 
          real_literal(1007): "0.0000", line: 25, col: 15 
    newline(1010): "(...)", line: 25, col: 21 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "-1.0344", line: 27, col: 1 
        value(2006) 
          real_literal(1007): "0.7137", line: 27, col: 9 
        value(2006) 
          real_literal(1007): "0.9050", line: 27, col: 16 
    newline(1010): "(...)", line: 27, col: 22 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "-1.0344", line: 29, col: 1 
        value(2006) 
          real_literal(1007): "0.7137", line: 29, col: 9 
        value(2006) 
          real_literal(1007): "-0.9050", line: 29, col: 16 
    newline(1010): "(...)", line: 29, col: 23 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "-0.3150", line: 31, col: 1 
        value(2006) 
          real_literal(1007): "-1.5163", line: 31, col: 9 
        value(2006) 
          real_literal(1007): "0.0000", line: 31, col: 17 
    newline(1010): "(...)", line: 31, col: 23 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "1.0344", line: 33, col: 1 
        value(2006) 
          real_literal(1007): "-0.7137", line: 33, col: 8 
        value(2006) 
          real_literal(1007): "0.9050", line: 33, col: 16 
    newline(1010): "(...)", line: 33, col: 22 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "1.0344", line: 35, col: 1 
        value(2006) 
          real_literal(1007): "-0.7137", line: 35, col: 8 
        value(2006) 
          real_literal(1007): "-0.9050", line: 35, col: 16 
    newline(1010): "(...)", line: 35, col: 23 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "AO_ATOMINDEX", line: 37, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 37, col: 13 
          integer_literal(1006): "0014", line: 37, col: 14 
          rbracket(1004): "]", line: 37, col: 18 
      equals(1002): "=", line: 37, col: 19 
    newline(1010): "(...)", line: 37, col: 20 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          integer_literal(1006): "1", line: 39, col: 1 
        value(2006) 
          integer_literal(1006): "1", line: 39, col: 3 
        value(2006) 
          integer_literal(1006): "1", line: 39, col: 5 
        value(2006) 
          integer_literal(1006): "1", line: 39, col: 7 
        value(2006) 
          integer_literal(1006): "2", line: 39, col: 9 
        value(2006) 
          integer_literal(1006): "2", line: 39, col: 11 
        value(2006) 
          integer_literal(1006): "2", line: 39, col: 13 
        value(2006) 
          integer_literal(1006): "2", line: 39, col: 15 
        value(2006) 
          integer_literal(1006): "3", line: 39, col: 17 
        value(2006) 
          integer_literal(1006): "4", line: 39, col: 19 
        value(2006) 
          integer_literal(1006): "5", line: 39, col: 21 
        value(2006) 
          integer_literal(1006): "6", line: 39, col: 23 
        value(2006) 
          integer_literal(1006): "7", line: 39, col: 25 
        value(2006) 
          integer_literal(1006): "8", line: 39, col: 27 
    newline(1010): "(...)", line: 39, col: 28 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "ATOM_SYMTYPE", line: 41, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 41, col: 13 
          integer_literal(1006): "0014", line: 41, col: 14 
          rbracket(1004): "]", line: 41, col: 18 
      equals(1002): "=", line: 41, col: 19 
    newline(1010): "(...)", line: 41, col: 20 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          identifier(1008): "S", line: 43, col: 1 
        value(2006) 
          identifier(1008): "PX", line: 43, col: 3 
        value(2006) 
          identifier(1008): "PY", line: 43, col: 6 
        value(2006) 
          identifier(1008): "PZ", line: 43, col: 9 
        value(2006) 
          identifier(1008): "S", line: 43, col: 12 
        value(2006) 
          identifier(1008): "PX", line: 43, col: 14 
        value(2006) 
          identifier(1008): "PY", line: 43, col: 17 
        value(2006) 
          identifier(1008): "PZ", line: 43, col: 20 
        value(2006) 
          identifier(1008): "S", line: 43, col: 23 
        value(2006) 
          identifier(1008): "S", line: 43, col: 25 
        value(2006) 
          identifier(1008): "S", line: 43, col: 27 
        value(2006) 
          identifier(1008): "S", line: 43, col: 29 
        value(2006) 
          identifier(1008): "S", line: 43, col: 31 
        value(2006) 
          identifier(1008): "S", line: 43, col: 33 
    newline(1010): "(...)", line: 43, col: 34 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "AO_ZETA", line: 45, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 45, col: 8 
          integer_literal(1006): "0014", line: 45, col: 9 
          rbracket(1004): "]", line: 45, col: 13 
      equals(1002): "=", line: 45, col: 14 
    newline(1010): "(...)", line: 45, col: 15 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "1.8087", line: 47, col: 1 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 8 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 15 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 22 
        value(2006) 
          real_literal(1007): "1.8087", line: 47, col: 29 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 36 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 43 
        value(2006) 
          real_literal(1007): "1.6851", line: 47, col: 50 
        value(2006) 
          real_literal(1007): "1.1881", line: 47, col: 57 
        value(2006) 
          real_literal(1007): "1.1881", line: 47, col: 64 
    newline(1010): "(...)", line: 47, col: 70 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          real_literal(1007): "1.1881", line: 49, col: 1 
        value(2006) 
          real_literal(1007): "1.1881", line: 49, col: 8 
        value(2006) 
          real_literal(1007): "1.1881", line: 49, col: 15 
        value(2006) 
          real_literal(1007): "1.1881", line: 49, col: 22 
    newline(1010): "(...)", line: 49, col: 28 
  line(2002) 
    contents(2003) 
      key(2004) 
        identifier(1008): "ATOM_PQN", line: 51, col: 1 
        key(2)(3002) 
          lbracket(1003): "[", line: 51, col: 9 
          integer_literal(1006): "0014", line: 51, col: 10 
          rbracket(1004): "]", line: 51, col: 14 
      equals(1002): "=", line: 51, col: 15 
    newline(1010): "(...)", line: 51, col: 16 
  line(2002) 
    contents(2003) 
      values(2005) 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 1 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 3 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 5 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 7 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 9 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 11 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 13 
        value(2006) 
          integer_literal(1006): "2", line: 53, col: 15 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 17 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 19 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 21 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 23 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 25 
        value(2006) 
          integer_literal(1006): "1", line: 53, col: 27 
    newline(1010): "(...)", line: 53, col: 28 
--------------------------------------------------------------------- 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]