• Stefan Monnier's avatar
    * lisp/progmodes/octave.el: Use grammar more; Handle enumeration fun · 90a6f8d0
    Stefan Monnier authored
    Remove redundant :group keyword args.
    (octave-begin-keywords, octave-else-keywords, octave-end-keywords):
    Remove variables.
    (octave-operator-table, octave-smie-bnf-table): Use let-when-compile to
    turn them into compile-time variables.
    Auto-generate the "foo ... end" rules from the "foo ... endfoo" rules.
    Add rules for break, continue, return, global, and persistent.
    Refine the rule for "until".
    (octave-smie--funcall-p, octave-smie--end-index-p)
    (octave-smie--in-parens-p): New functions.
    (octave-smie-backward-token, octave-smie-forward-token): Use them to
    distinguish the "enumeration" function and the "end" index from
    their corresponding keywords.
    (octave--block-offset-keywords): New constant.
    (octave-smie-rules): Use it.  Adjust rules for new global/persistent parsing.
    (octave-reserved-words): Redefine using octave-smie-grammar.
    (octave-font-lock-keywords): Use octave-smie--funcall-p and
    octave-smie--end-index-p.
    90a6f8d0
octave.el 73.4 KB