Web lists-archives.com

Re: [PATCH v3] userdiff.c & doc/gitattributes.txt: add Octave




On Wed, May 15, 2019 at 1:57 PM Johannes Sixt <j6t@xxxxxxxx> wrote:
>
> Am 11.05.19 um 06:13 schrieb Boxuan Li:
> > Octave pattern is almost the same as matlab. Besides,
> > octave also uses '%%%' or '##' to begin code sections.
> >
>
> > @@ -60,6 +60,11 @@ PATTERNS("java",
> >  PATTERNS("matlab",
> >        "^[[:space:]]*((classdef|function)[[:space:]].*)$|^%%[[:space:]].*$",
> >        "[a-zA-Z_][a-zA-Z0-9_]*|[-+0-9.e]+|[=~<>]=|\\.[*/\\^']|\\|\\||&&"),
> > +PATTERNS("octave",
> > +      /* Mostly the same as matlab. In addition, Octave
> > +       * supports '##' and '%%%' for code sections */
> > +      "^[[:space:]]*((classdef|function)[[:space:]].*)$|^(%%%?|##)[[:space:]].*$",
> > +      "[a-zA-Z_][a-zA-Z0-9_]*|[-+0-9.e]+|[=~<>]=|\\.[*/\\^']|\\|\\||&&"),
> >  PATTERNS("objc",
> >        /* Negate C statements that can look like functions */
> >        "!^[ \t]*(do|for|if|else|return|switch|while)\n"
> >
>
> In Matlab, are %%% and ## valid syntax? If not, instead of introducing a
> new language, please just extend the Matlab rule to treat %%% and ## as
> you need for Octave and mark your Octave files as Matlab.
>
> -- Hannes

Hi Hannes,

'##' is not valid syntax in Matlab scripts.

'%%%' is valid syntax in Matlab. However, it is not used as a section divider.

ref: https://www.mathworks.com/help/matlab/matlab_prog/run-sections-of-programs.html
ref: https://octave.org/doc/interpreter/Sections.html

Best regards,
Boxuan