]> git.eshelyaron.com Git - emacs.git/commit
HideIfDef mode bug fixes and enhancements. This is #2 of 3 patches based
authorLuke Lee <luke.yx.lee@gmail.com>
Thu, 26 Jun 2014 04:18:12 +0000 (12:18 +0800)
committerLuke Lee <luke.yx.lee@gmail.com>
Thu, 26 Jun 2014 04:18:12 +0000 (12:18 +0800)
commit704172e6d4ef5cf66c087b7eb8643a4309726ff7
tree0409cfb0cd540f3595b98cb3614cbd5d08843fdc
parentd3033d007b82ecc752dcf326fac4ffba45087ba6
HideIfDef mode bug fixes and enhancements. This is #2 of 3 patches based
on the completed work posted on http://www.emacswiki.org/emacs/HideIfDef.

- Supporting argumented macro expansion.
- Stringification, tokenization and concatenation of strings and tokens.
- Add functions to find defines and parse argumented macros into a macro
  tree containing macro name, formal parameters and macro body.
- On macro evaluation, macros will be applied with actual parameters and
  then got expanded recursively.
- Apply review changes.

* lisp/progmodes/hideif.el (hif-string-to-number): Fix return value bug.
(hif-simple-token-only, hif-tokenize): Commentted in detail mainly for
performance enhancements.
(hif-parse-if-exp): Rename to `hif-parse-exp'. Enhanced for macro
expansion.
(hif-factor, hif-string-concatenation, intern-safe): Support string
concatenation and argumented macro expansion.
(hif-if-valid-identifier-p, hif-define-operator, hif-flatten)
(hif-expand-token-list, hif-get-argument-list, hif-define-macro)
(hif-delimit, hif-macro-supply-arguments, hif-invoke, hif-canonicalize)
(hif-canonicalize-tokens, hif-looking-at-elif, hif-place-macro-invocation)
(hif-parse-macro-arglist): Mostly new functions for supporting argumented
macro expansion.
(hif-string-concatenation, hif-stringify, hif-token-concat)
(hif-token-stringification, hif-token-concatenation): Stringify and
concatentation.
(hif-find-next-relevant): Fix comments
(hif-ifdef-to-endif, hif-looking-at-elif, hif-hide-line): Bug fix for
some cases involving #elif.
(hif-find-define, hif-add-new-defines): New functions for automatically
scanning of defined symbols.
(hide-ifdef-guts): Fix for auto defined symbol scanning.
(hide-ifdef-undef): Fix behavior to match CPP.
lisp/progmodes/hideif.el