XText でプリプロセッサ命令のルールを書こうとしています。現在、私はこのように実装しました:
preproc:
type=PREPROCESSOR_INCLUDE_TYPE val=(STRING | PREPROCESSOR_INCLUDE_VAL)|
type=PREPROCESSOR_DEFINE_TYPE |
type=PREPROCESSOR_SINGLE_PARAM_TYPE val=ID|
type=PREPROCESSOR_NONE_PARAM_TYPE
;
terminal PREPROCESSOR_INCLUDE_TYPE: '#include'| '#import';
terminal PREPROCESSOR_INCLUDE_VAL: ' '+ '<'->'>';
terminal PREPROCESSOR_DEFINE_TYPE: '#define' -> '\n';
terminal PREPROCESSOR_SINGLE_PARAM_TYPE: '#undef' |'#ifdef' |'#ifndef' |'#pragma';
terminal PREPROCESSOR_NONE_PARAM_TYPE: '#else' | '#endif';
私はこの解決策があまり好きではありませんが、私が試したすべての解決策の中で唯一機能するものです。プリプロセッサ命令のルールを作成するよりスマートな方法はありますか?
PREPROCESSOR_DEFINE_TYPE ルールを分割して、プリプロセッサ命令タイプ (#define) をその値から分離するにはどうすればよいですか?
どうもありがとう
編集
これらのルールで捉えたいのは、典型的なプリプロセッサ命令です。例えば:
#include "fileName"
#import <fileName>
#define IDENTIFIER
#define IDENTIFIER WHATEVER + YOU - WANT !
#undef IDENTIFIER
#else
#endif
あると便利なのは、すべての異なるケースでプリプロセッサの型をその値から分割することです
ラファエロ。