Я хочу сопоставить все двоичные операторы в моем коде и убедиться, что они окружены пробелами (для целей стиля кодирования).При необходимости необходимо добавить пробелы.
Я использую emacs, и я уверен в том, что возможно использовать replace-regexp
или что-то подобное.
Двоичные операторы рассматриваются для языка Ситолько.А пока у меня есть несколько неисчерпывающих примеров:
Стандартные случаи
a=b
станут a = b
a+=b
станут a += b
a-=b
и т.д ...
a*=b
a/=b
Левый токен приклеен
a= b
станет a = b
a+= b
станет a += b
и т.д ...
Правый токен приклеен
a =b
станет a = b
a +=b
станет a += b
и т. Д. ...
Контрольные случаи
a = b
или a += b
и т. Д. ... НЕ ДОЛЖНЫбыть измененным (мы не хотим добавлять еще несколько пробелов)
Первая попытка
Я пытаюсь сопоставить это регулярное выражение: [^ ]\\+?\\-?\\*?\\/?=[^ ]
означает символ =
с любым другим символом, кромепробел справа и любой арифметический оператор (+*-/
), один или ноль раз (с использованием ?
), перед которым стоит любой другой символ, кроме пробела слева.Я здесь, потому что эти дозы не работают, по крайней мере, с функцией re-building
emacs.Совпадения неверны.Кто-нибудь может помочь?
PS: я сосредоточился на этих регулярных выражениях, потому что символы +
, *
и -
являются специальными символами в регулярном выражении.Но я надеюсь, что в будущем смогу применить эту функцию ко всем бинарным операторам C.
PPS: Я знаю, что будет проблема с *
символами и указателями, но я оставлю это на потом ...