diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js index 342512a..91a2789 100644 --- a/js/cesareBrowse.js +++ b/js/cesareBrowse.js @@ -156,6 +156,12 @@ $(document).ready(function() { if(categ[0]=='r'){ return parserArticolo.parse(categ).split(',').filter(prop => prop.length > 0).join() } + if (categ[0] == 'f') { + return parserCitazione.parse(categ).split(',').filter(prop => prop.length > 0).join(); + } + if (categ[0] == 'n') { + return parserOnomastica.parse(categ).split(',').filter(prop => prop.length > 0).join(); + } //console.log(categ[0]) return categoriegrammaticali[categ[0]] } @@ -556,17 +562,16 @@ $(document).ready(function() { */ var categoriegrammaticaliGrammar=`Expression = head:(Filtro){return 'Verbo,'+head.join()} -Filtro= fhead:("v")? tail:( transitivita? diatesi? impersonalita? +Filtro= fhead:("v") tail:( transitivita? diatesi? impersonalita* coniugazione? modotempo? - persona? funzione? declinazione? + persona? funzione* declinazione? genere? numero? grado?){return tail} - diatesi= [a|p] {if (text()=='a') return ' Attivo'; else return ' Passivo';} transitivita=[i|t]? {if (text()=='t') return ' Transitivo'; else if (text()=='i') return ' Intransitivo';} -impersonalita=([*|+])? {if (text()=='*') return ' Impersonale'; else if (text()=='+')return ' Riflessivo';} +impersonalita=([*|+]) {if (text()=='*') return ' Impersonale'; else if (text()=='+')return ' Riflessivo';} coniugazione=[1|2|3|4|5]? {switch(parseInt(text())){ case(1): return ' Prima coniugazione'; @@ -635,7 +640,7 @@ _ "whitespace"= " "* var categoriaGrammaticaleSostantivo = ` Expression = head:(Filtro){return 'Sostantivo,'+head.join()} -Filtro= fhead:("s")? tail:( genereforma? declinazionesostantivo? generelemma? +Filtro= fhead:("s") tail:( genereforma? declinazionesostantivo? generelemma? numersingolareplurale? locuzione?){return tail} @@ -650,7 +655,7 @@ generelemma=[m|f]? {if (text()=='m') return ' lemma maschile'; else if (text()== numersingolareplurale=[s|p]? {if (text()=='s') return ' numero singolare'; else if (text()=='p') return ' numero plurale';} -locuzione="Iv" {return('In Locuzione verbo');} +locuzione="lv" {return('In Locuzione verbo');} Integer "integer" = _ [0-9]+ { return parseInt(text(), 10); } @@ -661,7 +666,7 @@ _ "whitespace"= " "* var categoriaGrammaticalePreposizione = ` Expression = head:(Filtro){return 'Preposizione,'+head.join()} -Filtro= fhead:("e")? tail:( tipo1? tipo2? sintassi? complemento1? complemento2?){return tail} +Filtro= fhead:("e") tail:( tipo1? tipo2? sintassi? complemento1? complemento2?){return tail} tipo1=[p|i] {if (text()=='i') return ' Impropria'; else if (text()=='p') return ' Impropria';} @@ -741,17 +746,16 @@ complemento2= "k14" {return(" Di Rapporto")} ` -var avverbio = ` Expression = head:(Filtro){return 'Avverbio,'+head.join()} -Filtro= fhead:("b")? tail:( fake? tipo?){return tail} - -fake= "" +var avverbio = `Expression = head:(Filtro){return 'Avverbio,'+head.join()} +Filtro= fhead:("b") tail:( locuzione? tipo?){return tail} + +locuzione = "lz" {return(' Avverbio in Locuzione Separato')}/ +"l" {return(' Avverbio in Locuzione')} tipo="c+" {return(' Avverbio al Comparativo di Maggioranza')}/ "c-" {return(' Avverbio al Comparativo di Minoranza')}/ "sa" {return(' Avverbio al Superlativo Assoluto')}/ "sr" {return(' Avverbio al Superlativo Relativo')}/ - "lz" {return(' Avverbio in Locuzione Separato')}/ - "l" {return(' Avverbio in Locuzione')}/ "y" {return(' Avverbio Proclitico')}/ "x" {return(' Avverbio Enclitico')}/ "c" {return(' Avverbio al Comparativo di Uguaglianza')} @@ -762,12 +766,11 @@ Integer "integer" _ "whitespace"= " "* + ` -var pronome = ` - -Expression = head:(Filtro){return 'Pronome,'+head.join()} -Filtro= fhead:("p")? tail:( tipo_pronome? classe_pronome? genere_pronome? +var pronome = `Expression = head:(Filtro){return 'Pronome,'+head.join()} +Filtro= fhead:("p") tail:( tipo_pronome? classe_pronome? genere_pronome? numero_pronome? forma_pronome? funzione_pronome? tiporiflessivi?){return tail} @@ -794,8 +797,8 @@ forma_pronome= "l" {return(" Pronome Libero")}/ "i" {return(" Pronome Libero In Composizione")}/ "y" {return(" Pronome Proclitico")}/ "x" {return(" Pronome Enclitico")} -funzione_pronome="so" {return(' Libero Soggetto')}/ - "soi" {return(' Libero Soggetto Impersonale')}/ +funzione_pronome= "soi" {return(' Libero Soggetto Impersonale')}/ + "so" {return(' Libero Soggetto')}/ "co" {return(' Libero Complemento')}/ "ra" {return(' Libero Rafforzativo')}/ "ac" {return(' Clitico Accusativo')}/ @@ -818,7 +821,7 @@ _ "whitespace"= " "* ` var categoriaGrammaticaleAggettivo = ` Expression = head:(Filtro){return 'Aggettivo,'+head.join()} -Filtro= fhead:("a")? tail:( tipo_aggettivo classe_aggettivo? genere_aggettivo? +Filtro= fhead:("a") tail:( tipo_aggettivo classe_aggettivo? genere_aggettivo? numero_aggettivo? grado_aggettivo? tipo_complemento? tipo_frase? oggetto_indiretto?){return tail} @@ -902,7 +905,7 @@ _ "whitespace"= " "* var categoriaGrammaticaleArticolo = ` Expression = head:(Filtro){return 'Articolo,'+head.join()} -Filtro= fhead:("r")? tail:( tipo? genere? numero?){return tail} +Filtro= fhead:("r") tail:( tipo? genere? numero?){return tail} tipo = "d" {return(" Determinativo")}/ @@ -924,7 +927,36 @@ _ "whitespace"= " "* ` +var citazione = ` +Expression = head:(Filtro){return 'Citazione,'+head.join()} +Filtro= fhead:("f") tail:( fake? tipo?){return tail} +fake = "" +tipo="l" {return(' Citazione Latina')}/ + "p" {return(' Citazione Provenzale')}/ + "r" {return(' Citazione Francese')}/ + "s" {return(' Citazione Spagnola')}/ + "e" {return(' Citazione Ebraica')}/ + "g" {return(' Citazione Greca')} + +Integer "integer" + = _ [0-9]+ { return parseInt(text(), 10); } + +_ "whitespace"= " "* + +` +var onomastica = `Expression = head:(Filtro){return 'Onomastica,'+head.join()} +Filtro= fhead:("n") tail:( proprio tipo?){return tail} + +tipo="x" {return(' Separato')}/ + "t" {return(' Titolo')} +proprio = "p" {return("Nome Proprio")} + +Integer "integer" + = _ [0-9]+ { return parseInt(text(), 10); } + +_ "whitespace"= " "* +` //parser per categorie var parserVerbi = peg.generate(categoriegrammaticaliGrammar); var parserSostantivi = peg.generate(categoriaGrammaticaleSostantivo); @@ -933,6 +965,8 @@ var parserAvverbi = peg.generate(avverbio); var parserPronomi = peg.generate(pronome); var parserAggettivi = peg.generate(categoriaGrammaticaleAggettivo); var parserArticolo = peg.generate(categoriaGrammaticaleArticolo); +var parserCitazione = peg.generate(citazione); +var parserOnomastica = peg.generate(onomastica); });