/mcst

MATLAB concrete syntax tree, developed on MATLAB, tested and available on MATLAB and Python.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

mcst

MATLAB concrete syntax tree, developed on MATLAB, tested and available on MATLAB and Python.

Current stage:

  • Bootstrap (via transpile to Python)
  • Fully compatible with standard MATLAB
  • Fully tested
  • Production ready

Known limitations:

  • Ellipses are not supported (working in progress)
    some = fun(args, arg2, ...
               arg3, arg4, arg5)
  • Command format not supported (working in progress)
    hold on
  • Exclamation point are not supported (working in progress)
    !mkdir a
  • Multiple inheritance is not supported (low priority)
    classdef A < B & C
  • Calling a parent class function of the same name from a subclass is not supported (low priority)
    obj@ParentCls.fun()
  • Lack of robust and user-friendly error messages (low priority)

Roadmap:

  • Build auto-formatter tool
  • Support ellipses
  • Support command format
  • Support exclamation point
  • More test cases
  • Improve performance

For more information about concrete syntax tree, see:

https://github.com/psf/black/tree/main/src/blib2to3

https://libcst.readthedocs.io/en/latest/why_libcst.html