asc-community / asc-community/AngouriMath

Unicode Stringize and parsing

Open
#1,242 1 comment 0 reactions 0 assignees View on GitHub
Proposal
Dominant language
C#
Stars
831
Forks
79
Avg merge
3h 23m
Merged PRs (30d)
309

Description

The current Stringize restricts to ASCII which is easy to edit on a keyboard. However if the output is intended for text display it may be desirable to add a flag to use the full Unicode range. The parser will need to recognize these Unicode outputs and parse unambiguously. For exponentiation, if the superscripts or subscripts can represent the content whole then it is desirable to write `^2` as `²` and `_2` as `₂`, otherwise for nested powers `^` and `_` should be kept. However for the final nesting level Unicode superscripts and subscripts are still to be used.

https://unicodemath.org/ may be relevant here. Some nuances like implicit multiplication binding stronger than exponentiation also needs in depth consideration - this may also change normal parsing. We may still want `/` to be explicitly division (as well as all the presentation focused syntax whereas we have logical nodes), so UnicodeMath parsing and output may be a separate entry point (do we want this at all?) but some ideas still apply to stringize using full unicode range.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the current Stringize implementation and parser entry points to understand the existing ASCII output and parsing rules. Review unicodemath.org for relevant UnicodeMath conventions, then determine whether Unicode output and parsing should be separate entry points. Done means the scope and handling of superscripts, subscripts, exponentiation, implicit multiplication, and division are specified and implemented unambiguously.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.