diff --git a/PS.g4 b/PS.g4 index 36735aa..8cd1ef4 100644 --- a/PS.g4 +++ b/PS.g4 @@ -11,8 +11,6 @@ SUB: '-'; MUL: '*'; DIV: '/'; -EXP: '**'; - L_PAREN: '('; R_PAREN: ')'; L_BRACE: '{'; @@ -115,8 +113,7 @@ eval_at_sup: R_BRACE; exp: - exp EXP exp - | exp CARET L_BRACE expr R_BRACE subexpr? + exp CARET (atom | L_BRACE expr R_BRACE) subexpr? | comp; comp: diff --git a/process_latex.py b/process_latex.py index 1625486..89e74b6 100644 --- a/process_latex.py +++ b/process_latex.py @@ -174,11 +174,11 @@ def convert_postfix(postfix): def convert_exp(exp): if exp.exp(): - base = convert_exp(exp.exp(0)) + base = convert_exp(exp.exp()) if isinstance(base, list): raise Exception("Cannot raise derivative to power") - if exp.EXP(): - exponent = convert_exp(exp.exp(1)) + if exp.atom(): + exponent = convert_atom(exp.atom()) elif exp.expr(): exponent = convert_expr(exp.expr()) return sympy.Pow(base, exponent, evaluate=False)