MobMonRob / DSL4GeometricAlgebra

DSL for Geometric algebra with Java
Apache License 2.0
2 stars 1 forks source link

Precedence difference between wedge product and geometrich product #4

Closed orat closed 2 years ago

orat commented 2 years ago

Mir ist gerade folgendes aufgefallen:

// hier würde ich gerne die Klammer weglassen geht das? Base = ε₀∧ε₁∧ε₂∧(100εᵢ);

also so Base = ε₀∧ε₁∧ε₂∧100εᵢ;

dazu brauchen wir höhere precedence für das geometrische produkt im Vergleich zum wedge product (∧)

Wäre das leicht zu haben?

In der Doku steht derzeit für beides ==3

codedeedope commented 2 years ago

Kommt ein bisschen auf die Umsetzung an, wie leicht es zu haben ist. Oft lassen sich die Precedences der Operatoren in der Grammatik verhältnismäßig einfach und schnell anpassen. Aber nicht immer.

Die Precedence des geometrischen Produktes nur isoliert gegenüber dem Wedge Produkt zu erhöhen und gegenüber den anderen Operatoren gleich zu lassen, ginge wahrscheinlich. Aber taucht der von Dir geschilderte Fall nicht auch mit anderen Operatoren außer dem Wedge Produkt auf? -> Geschätzt: Mäßiger Aufwand

Am einfachsten wäre es wohl, die Precedence des geometrischen Produktes auf 4 zu heben und bei den anderen Operatoren die Precedence zu inkrementieren ab einschließlich Precedence 4. Damit wäre die Precedence des geometrischen Produktes allerdings höher als die aller anderen binären Operatoren. Siehst Du da Probleme? -> Geschätzt: sehr geringer Aufwand

Eine Alternative hierzu wäre, die Precedence des geometrischen Produktes nur genau dann zu erhöhen, wenn (ein beliebiger | nur der linke) Operand ein numerisches Literal ist. -> Geschätzt: geringer Aufwand

codedeedope commented 2 years ago

Precedence des geometrischen Produktes wird auf 4 gehoben. Spezifikation in der Doku angepasst mit a498aa2.