AryaWu/sqlite
0
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 DEFERRED7);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 TEXT39);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 