fissato grammatiche

This commit is contained in:
nicola 2022-12-22 15:08:16 +01:00
parent 9e75673645
commit d84a96325c
1 changed files with 55 additions and 21 deletions

View File

@ -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);
});