1BEGIN; 2CREATE TABLE symbol( 3 id INTEGER PRIMARY KEY, 4 name TEXT NOT NULL, 5 isTerminal BOOLEAN NOT NULL, 6 fallback INTEGER REFERENCES symbol DEFERRABLE INITIALLY DEFERRED 7); 8INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(0,'$',TRUE,NULL); 9INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(1,'OR',TRUE,NULL); 10INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(2,'AND',TRUE,NULL); 11INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(3,'NOT',TRUE,NULL); 12INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(4,'TERM',TRUE,NULL); 13INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(5,'COLON',TRUE,NULL); 14INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(6,'MINUS',TRUE,NULL); 15INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(7,'LCP',TRUE,NULL); 16INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(8,'RCP',TRUE,NULL); 17INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(9,'STRING',TRUE,NULL); 18INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(10,'LP',TRUE,NULL); 19INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(11,'RP',TRUE,NULL); 20INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(12,'CARET',TRUE,NULL); 21INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(13,'COMMA',TRUE,NULL); 22INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(14,'PLUS',TRUE,NULL); 23INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(15,'STAR',TRUE,NULL); 24INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(16,'input',FALSE,NULL); 25INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(17,'expr',FALSE,NULL); 26INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(18,'cnearset',FALSE,NULL); 27INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(19,'exprlist',FALSE,NULL); 28INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(20,'colset',FALSE,NULL); 29INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(21,'colsetlist',FALSE,NULL); 30INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(22,'nearset',FALSE,NULL); 31INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(23,'nearphrases',FALSE,NULL); 32INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(24,'phrase',FALSE,NULL); 33INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(25,'neardist_opt',FALSE,NULL); 34INSERT INTO symbol(id,name,isTerminal,fallback)VALUES(26,'star_opt',FALSE,NULL); 35CREATE TABLE rule( 36 ruleid INTEGER PRIMARY KEY, 37 lhs INTEGER REFERENCES symbol(id), 38 txt TEXT 39); 40CREATE TABLE rulerhs( 41 ruleid INTEGER REFERENCES rule(ruleid), 42 pos INTEGER, 43 sym INTEGER REFERENCES symbol(id) 44); 45INSERT INTO rule(ruleid,lhs,txt)VALUES(0,16,'input ::= expr'); 46INSERT INTO rulerhs(ruleid,pos,sym)VALUES(0,0,17); 47INSERT INTO rule(ruleid,lhs,txt)VALUES(1,20,'colset ::= MINUS LCP colsetlist RCP'); 48INSERT INTO rulerhs(ruleid,pos,sym)VALUES(1,0,6); 49INSERT INTO rulerhs(ruleid,pos,sym)VALUES(1,1,7); 50INSERT INTO rulerhs(ruleid,pos,sym)VALUES(1,2,21); 51INSERT INTO rulerhs(ruleid,pos,sym)VALUES(1,3,8); 52INSERT INTO rule(ruleid,lhs,txt)VALUES(2,20,'colset ::= LCP colsetlist RCP'); 53INSERT INTO rulerhs(ruleid,pos,sym)VALUES(2,0,7); 54INSERT INTO rulerhs(ruleid,pos,sym)VALUES(2,1,21); 55INSERT INTO rulerhs(ruleid,pos,sym)VALUES(2,2,8); 56INSERT INTO rule(ruleid,lhs,txt)VALUES(3,20,'colset ::= STRING'); 57INSERT INTO rulerhs(ruleid,pos,sym)VALUES(3,0,9); 58INSERT INTO rule(ruleid,lhs,txt)VALUES(4,20,'colset ::= MINUS STRING'); 59INSERT INTO rulerhs(ruleid,pos,sym)VALUES(4,0,6); 60INSERT INTO rulerhs(ruleid,pos,sym)VALUES(4,1,9); 61INSERT INTO rule(ruleid,lhs,txt)VALUES(5,21,'colsetlist ::= colsetlist STRING'); 62INSERT INTO rulerhs(ruleid,pos,sym)VALUES(5,0,21); 63INSERT INTO rulerhs(ruleid,pos,sym)VALUES(5,1,9); 64INSERT INTO rule(ruleid,lhs,txt)VALUES(6,21,'colsetlist ::= STRING'); 65INSERT INTO rulerhs(ruleid,pos,sym)VALUES(6,0,9); 66INSERT INTO rule(ruleid,lhs,txt)VALUES(7,17,'expr ::= expr AND expr'); 67INSERT INTO rulerhs(ruleid,pos,sym)VALUES(7,0,17); 68INSERT INTO rulerhs(ruleid,pos,sym)VALUES(7,1,2); 69INSERT INTO rulerhs(ruleid,pos,sym)VALUES(7,2,17); 70INSERT INTO rule(ruleid,lhs,txt)VALUES(8,17,'expr ::= expr OR expr'); 71INSERT INTO rulerhs(ruleid,pos,sym)VALUES(8,0,17); 72INSERT INTO rulerhs(ruleid,pos,sym)VALUES(8,1,1); 73INSERT INTO rulerhs(ruleid,pos,sym)VALUES(8,2,17); 74INSERT INTO rule(ruleid,lhs,txt)VALUES(9,17,'expr ::= expr NOT expr'); 75INSERT INTO rulerhs(ruleid,pos,sym)VALUES(9,0,17); 76INSERT INTO rulerhs(ruleid,pos,sym)VALUES(9,1,3); 77INSERT INTO rulerhs(ruleid,pos,sym)VALUES(9,2,17); 78INSERT INTO rule(ruleid,lhs,txt)VALUES(10,17,'expr ::= colset COLON LP expr RP'); 79INSERT INTO rulerhs(ruleid,pos,sym)VALUES(10,0,20); 80INSERT INTO rulerhs(ruleid,pos,sym)VALUES(10,1,5); 81INSERT INTO rulerhs(ruleid,pos,sym)VALUES(10,2,10); 82INSERT INTO rulerhs(ruleid,pos,sym)VALUES(10,3,17); 83INSERT INTO rulerhs(ruleid,pos,sym)VALUES(10,4,11); 84INSERT INTO rule(ruleid,lhs,txt)VALUES(11,17,'expr ::= LP expr RP'); 85INSERT INTO rulerhs(ruleid,pos,sym)VALUES(11,0,10); 86INSERT INTO rulerhs(ruleid,pos,sym)VALUES(11,1,17); 87INSERT INTO rulerhs(ruleid,pos,sym)VALUES(11,2,11); 88INSERT INTO rule(ruleid,lhs,txt)VALUES(12,17,'expr ::= exprlist'); 89INSERT INTO rulerhs(ruleid,pos,sym)VALUES(12,0,19); 90INSERT INTO rule(ruleid,lhs,txt)VALUES(13,19,'exprlist ::= cnearset'); 91INSERT INTO rulerhs(ruleid,pos,sym)VALUES(13,0,18); 92INSERT INTO rule(ruleid,lhs,txt)VALUES(14,19,'exprlist ::= exprlist cnearset'); 93INSERT INTO rulerhs(ruleid,pos,sym)VALUES(14,0,19); 94INSERT INTO rulerhs(ruleid,pos,sym)VALUES(14,1,18); 95INSERT INTO rule(ruleid,lhs,txt)VALUES(15,18,'cnearset ::= nearset'); 96INSERT INTO rulerhs(ruleid,pos,sym)VALUES(15,0,22); 97INSERT INTO rule(ruleid,lhs,txt)VALUES(16,18,'cnearset ::= colset COLON nearset'); 98INSERT INTO rulerhs(ruleid,pos,sym)VALUES(16,0,20); 99INSERT INTO rulerhs(ruleid,pos,sym)VALUES(16,1,5); 100INSERT INTO rulerhs(ruleid,pos,sym)VALUES(16,2,22); 101INSERT INTO rule(ruleid,lhs,txt)VALUES(17,22,'nearset ::= phrase'); 102INSERT INTO rulerhs(ruleid,pos,sym)VALUES(17,0,24); 103INSERT INTO rule(ruleid,lhs,txt)VALUES(18,22,'nearset ::= CARET phrase'); 104INSERT INTO rulerhs(ruleid,pos,sym)VALUES(18,0,12); 105INSERT INTO rulerhs(ruleid,pos,sym)VALUES(18,1,24); 106INSERT INTO rule(ruleid,lhs,txt)VALUES(19,22,'nearset ::= STRING LP nearphrases neardist_opt RP'); 107INSERT INTO rulerhs(ruleid,pos,sym)VALUES(19,0,9); 108INSERT INTO rulerhs(ruleid,pos,sym)VALUES(19,1,10); 109INSERT INTO rulerhs(ruleid,pos,sym)VALUES(19,2,23); 110INSERT INTO rulerhs(ruleid,pos,sym)VALUES(19,3,25); 111INSERT INTO rulerhs(ruleid,pos,sym)VALUES(19,4,11); 112INSERT INTO rule(ruleid,lhs,txt)VALUES(20,23,'nearphrases ::= phrase'); 113INSERT INTO rulerhs(ruleid,pos,sym)VALUES(20,0,24); 114INSERT INTO rule(ruleid,lhs,txt)VALUES(21,23,'nearphrases ::= nearphrases phrase'); 115INSERT INTO rulerhs(ruleid,pos,sym)VALUES(21,0,23); 116INSERT INTO rulerhs(ruleid,pos,sym)VALUES(21,1,24); 117INSERT INTO rule(ruleid,lhs,txt)VALUES(22,25,'neardist_opt ::='); 118INSERT INTO rule(ruleid,lhs,txt)VALUES(23,25,'neardist_opt ::= COMMA STRING'); 119INSERT INTO rulerhs(ruleid,pos,sym)VALUES(23,0,13); 120INSERT INTO rulerhs(ruleid,pos,sym)VALUES(23,1,9); 121INSERT INTO rule(ruleid,lhs,txt)VALUES(24,24,'phrase ::= phrase PLUS STRING star_opt'); 122INSERT INTO rulerhs(ruleid,pos,sym)VALUES(24,0,24); 123INSERT INTO rulerhs(ruleid,pos,sym)VALUES(24,1,14); 124INSERT INTO rulerhs(ruleid,pos,sym)VALUES(24,2,9); 125INSERT INTO rulerhs(ruleid,pos,sym)VALUES(24,3,26); 126INSERT INTO rule(ruleid,lhs,txt)VALUES(25,24,'phrase ::= STRING star_opt'); 127INSERT INTO rulerhs(ruleid,pos,sym)VALUES(25,0,9); 128INSERT INTO rulerhs(ruleid,pos,sym)VALUES(25,1,26); 129INSERT INTO rule(ruleid,lhs,txt)VALUES(26,26,'star_opt ::= STAR'); 130INSERT INTO rulerhs(ruleid,pos,sym)VALUES(26,0,15); 131INSERT INTO rule(ruleid,lhs,txt)VALUES(27,26,'star_opt ::='); 132COMMIT; 133