def p_complexAccent(p): '''accent : ACCENT block''' p[0] = formulate.formulate(dAccents.showReading(p[1]), OPTION) + p[2] + formulate.formulate( 'fin' + dAccents.showReading(p[1]), OPTION, )
def p_cChoose(p): '''choose : simple CHOOSE block | block CHOOSE block | block CHOOSE simple ''' p[0] = formulate.formulate('combinacionesDe', OPTION) + p[1] + formulate.formulate( 'en', OPTION) + p[3] + formulate.formulate( 'finCombinación', OPTION)
def p_cBinom(p): '''binom : BINOM simple block | BINOM block block | BINOM block simple ''' p[0] = formulate.formulate('combinacionesDe', OPTION) + p[2] + formulate.formulate( 'en', OPTION) + p[3] + formulate.formulate( 'finCombinación', OPTION)
def p_cFrac(p): '''frac : FRAC block block | FRAC simple block | FRAC block simple ''' p[0] = formulate.formulate( 'comienzaFracción', OPTION) + p[2] + formulate.formulate( 'sobre', OPTION) + p[3] + formulate.formulate( 'finFracción', OPTION)
def p_lim(p): '''lim : LIM | LIM limScript''' if (len(p) == 3): p[0] = formulate.formulate('límitePara', OPTION) + p[2] + formulate.formulate( 'de', OPTION) else: p[0] = formulate.formulate('límiteDe', OPTION)
def p_sBlock(p): ''' block : BEGINBLOCK SSTYLE any ''' if p[2] == "bf": p[0] = p[3] + formulate.formulate('Negrita', OPTION) elif p[2] == "cal": p[0] = p[3] + formulate.formulate('Caligráfica', OPTION) else: p[0] = formulate.formulate(' ', OPTION) + p[3] + formulate.formulate( ' ', OPTION)
def p_root(p): '''root : ROOT simple | ROOT KDELIMITER start KDELIMITER simple '''#Conflicts here if (len(p) == 3): p[0] = formulate.formulate('raízcuadradade', OPTION) + p[2] else: p[0] = formulate.formulate('raíz', OPTION) + p[3] + formulate.formulate( 'de', OPTION) + p[5]
def p_array(p): '''array : BEGARRAY arrayContent ENDARRAY ''' if p[1] == "begin{cases}": p[0] = formulate.formulate('definidoEnCasos\n', OPTION) + p[2] + formulate.formulate( 'finCasos\n', OPTION) else: p[0] = formulate.formulate('Arreglo\n', OPTION) + p[2] + formulate.formulate( 'finArreglo\n', OPTION)
def p_smathopScript(p): '''smathopScript : SUP simple | SUB simple | SUB shortscriptable | SUP shortscriptable''' if (p[1] == '^'): p[0] = formulate.formulate( 'arriba', OPTION) + p[2] + formulate.formulate(' ', OPTION) else: p[0] = formulate.formulate( 'abajo', OPTION) + p[2] + formulate.formulate(' ', OPTION)
def p_sScript(p): '''sScript : SUP simple | SUB simple | SUB shortscriptable | SUP shortscriptable''' if (p[1] == '^'): p[0] = formulate.formulate( 'supra', OPTION) + p[2] + formulate.formulate(' ', OPTION) else: p[0] = formulate.formulate('sub', OPTION) + p[2] + formulate.formulate( ' ', OPTION)
def p_sbScript(p): '''sbScript : SUP block | SUB block | SUP scriptable | SUB scriptable ''' if (p[1] == '^'): p[0] = formulate.formulate('súper', OPTION) + p[2] + formulate.formulate( 'finSúper', OPTION) else: p[0] = formulate.formulate( 'abreSub', OPTION) + p[2] + formulate.formulate('finSub', OPTION)
def p_complexRoot(p): '''root : ROOT block | ROOT KDELIMITER start KDELIMITER block '''#Conflicts here if (len(p) == 3): p[0] = formulate.formulate('raízCuadradaDe', OPTION) + p[2] + formulate.formulate( 'terminaRaíz', OPTION) else: p[0] = formulate.formulate( 'raíz', OPTION) + p[3] + formulate.formulate( 'de', OPTION) + p[5] + formulate.formulate( 'terminaRaíz', OPTION)
def p_sbmathopScript(p): '''sbmathopScript : SUP block | SUB block | SUP scriptable | SUB scriptable ''' if (p[1] == '^'): p[0] = formulate.formulate('encima', OPTION) + p[2] + formulate.formulate( 'finEncima', OPTION) else: p[0] = formulate.formulate('debajo', OPTION) + p[2] + formulate.formulate( 'finDebajo', OPTION)
def p_sLaropScript(p): ''' sLaropScript : SUP simple | SUB simple | SUP shortscriptable | SUB shortscriptable | SUP block | SUB block | SUP scriptable | SUB scriptable ''' if (p[1] == '^'): p[0] = formulate.formulate('hasta', OPTION) + p[2] else: p[0] = formulate.formulate('sobre', OPTION) + p[2]
def p_cLaripScript(p): '''cLaropScript : SUP simple SUB simple | SUP simple SUB block | SUP block SUB simple | SUP block SUB block | SUB simple SUP simple | SUB simple SUP block | SUB block SUP simple | SUB block SUP block | SUB scriptable SUP simple | SUB simple SUP scriptable | SUB scriptable SUP block | SUB block SUP scriptable | SUB scriptable SUP scriptable | SUB shortscriptable SUP simple | SUB simple SUP shortscriptable | SUB shortscriptable SUP block | SUB block SUP shortscriptable | SUB scriptable SUP shortscriptable | SUB shortscriptable SUP scriptable | SUB shortscriptable SUP shortscriptable | SUP scriptable SUB simple | SUP simple SUB scriptable | SUP scriptable SUB block | SUP block SUB scriptable | SUP scriptable SUB scriptable | SUP shortscriptable SUB simple | SUP simple SUB shortscriptable | SUP shortscriptable SUB block | SUP block SUB shortscriptable | SUP scriptable SUB shortscriptable | SUP shortscriptable SUB scriptable | SUP shortscriptable SUB shortscriptable ''' if (p[1] == '^'): p[0] = formulate.formulate('desde', OPTION) + p[4] + formulate.formulate( 'hasta', OPTION) + p[2] else: p[0] = formulate.formulate('desde', OPTION) + p[2] + formulate.formulate( 'hasta', OPTION) + p[4]
def p_cmathopScript(p): '''cmathopScript : SUP simple SUB simple | SUP simple SUB block | SUP block SUB simple | SUP block SUB block | SUB simple SUP simple | SUB simple SUP block | SUB block SUP simple | SUB block SUP block | SUB scriptable SUP simple | SUB simple SUP scriptable | SUB scriptable SUP block | SUB block SUP scriptable | SUB scriptable SUP scriptable | SUB shortscriptable SUP simple | SUB simple SUP shortscriptable | SUB shortscriptable SUP block | SUB block SUP shortscriptable | SUB scriptable SUP shortscriptable | SUB shortscriptable SUP scriptable | SUB shortscriptable SUP shortscriptable ''' if (p[1] == '^'): p[0] = formulate.formulate( 'encima', OPTION) + p[2] + formulate.formulate( 'yDebajo', OPTION) + p[4] + formulate.formulate( 'finDebajo', OPTION) else: p[0] = formulate.formulate( 'debajo', OPTION) + p[2] + formulate.formulate( 'yEncima', OPTION) + p[4] + formulate.formulate( 'finEncima', OPTION)
def p_cScript(p): '''cScript : SUP simple SUB simple | SUP simple SUB block | SUP block SUB simple | SUP block SUB block | SUB simple SUP simple | SUB simple SUP block | SUB block SUP simple | SUB block SUP block | SUB scriptable SUP simple | SUB simple SUP scriptable | SUB scriptable SUP block | SUB block SUP scriptable | SUB scriptable SUP scriptable | SUB shortscriptable SUP simple | SUB simple SUP shortscriptable | SUB shortscriptable SUP block | SUB block SUP shortscriptable | SUB scriptable SUP shortscriptable | SUB shortscriptable SUP scriptable | SUB shortscriptable SUP shortscriptable | SUP scriptable SUB simple | SUP simple SUB scriptable | SUP scriptable SUB block | SUP block SUB scriptable | SUP scriptable SUB scriptable | SUP shortscriptable SUB simple | SUP simple SUB shortscriptable | SUP shortscriptable SUB block | SUP block SUB shortscriptable | SUP scriptable SUB shortscriptable | SUP shortscriptable SUB scriptable | SUP shortscriptable SUB shortscriptable ''' if (p[1] == '^'): p[0] = formulate.formulate( 'súper', OPTION) + p[2] + formulate.formulate( 'finSúper', OPTION) + formulate.formulate( 'sub', OPTION) + p[4] + formulate.formulate( 'finSub', OPTION) else: p[0] = formulate.formulate('sub', OPTION) + p[2] + formulate.formulate( 'finSub', OPTION) + formulate.formulate( 'súper', OPTION) + p[4] + formulate.formulate( 'finSúper', OPTION)
def p_punctuation(p): '''punctuation : "'" | ',' | '.' | ':' | ';' | '|' | '"' ''' if p[1] == "'": p[0] = formulate.formulate('prima', OPTION) elif p[1] == ',': p[0] = formulate.formulate('coma', OPTION) elif p[1] == '.': p[0] = formulate.formulate('punto', OPTION) elif p[1] == ':': p[0] = formulate.formulate('dosPuntos', OPTION) elif p[1] == ';': p[0] = formulate.formulate('puntoYcoma', OPTION) elif p[1] == '|': p[0] = formulate.formulate('lineaVertical', OPTION) else: p[0] = formulate.formulate('comillas', OPTION)
def p_scrLarop(p): '''scrLarop : LARGEOP sLaropScript | LARGEOP cLaropScript ''' p[0] = formulate.formulate(dLargeOperators.showReading( p[1]), OPTION) + p[2] + formulate.formulate('de', OPTION)
def p_linebreak(p): '''lnbrk : LINEBREAK''' p[0] = formulate.formulate('saltoDeLínea', OPTION)
def p_simpleAccent(p): '''accent : ACCENT simple''' p[0] = p[2].rstrip() + formulate.formulate(dAccents.showReading(p[1]), OPTION).title()
def p_choose(p): '''choose : simple CHOOSE simple''' p[0] = formulate.formulate('combinacionesDe', OPTION) + p[1] + formulate.formulate( 'en', OPTION) + p[3]
def p_frac(p): '''frac : FRAC simple simple''' p[0] = p[2] + formulate.formulate( 'sobre', OPTION) + p[3] + formulate.formulate(' ', OPTION)
def p_pmod(p): '''pmod : PMOD simple''' p[0] = formulate.formulate('módulo', OPTION) + p[2]
def p_complexStyle(p): '''style : STYLE block ''' p[0] = formulate.formulate(dStyles.showReading(p[1]), OPTION) + p[2] + formulate.formulate( 'fin' + dStyles.showReading(p[1]), OPTION)
def p_binom(p): '''binom : BINOM simple simple''' p[0] = formulate.formulate('combinacionesDe', OPTION) + p[2] + formulate.formulate( 'en', OPTION) + p[3]
def p_textBlock(p): '''textBlock : TEXT any ''' p[0] = formulate.formulate(' ', OPTION) + p[2] + formulate.formulate( ' ', OPTION)
def p_style(p): '''style : STYLE simple''' p[0] = p[2].rstrip() + formulate.formulate(dStyles.showReading(p[1]), OPTION).title()
def p_factorial(p): '''factorial : '!' ''' p[0] = formulate.formulate('factorial', OPTION)
def p_complexPmod(p): '''pmod : PMOD block''' p[0] = formulate.formulate('módulo', OPTION) + p[2] + formulate.formulate( 'finMod', OPTION)