4
誰かが簡単なANTLR 3.4の例を知っていますか?main()
はCターゲットの機能ですか?私はANTLRをCまたはC++で始めようとしています。私が見ているすべての例(thisを含む)は古くなっています。それらはもはや存在しない関数を使用します。ダウンロードしたパッケージ自体には例がないようですが、Wikiの例は古くなっています。Cターゲットランタイムの簡単なANTLR 3.4の例
誰かが簡単なANTLR 3.4の例を知っていますか?main()
はCターゲットの機能ですか?私はANTLRをCまたはC++で始めようとしています。私が見ているすべての例(thisを含む)は古くなっています。それらはもはや存在しない関数を使用します。ダウンロードしたパッケージ自体には例がないようですが、Wikiの例は古くなっています。Cターゲットランタイムの簡単なANTLR 3.4の例
未テスト。
#include "YourLexer.h"
#include "YourParser.h"
int main()
{
uint8_t * bufferData; // Some memory with text in it
uint32_t bufferSize; // Size of said memory
pANTLR3_UINT8 bufferName; // Name of buffer. ANTLR uses this for some default
// error messages
//Creates an input stream. If you want to parse once from multiple sources
// you can switch among these during lexing
pANTLR3_INPUT_STREAM input = antlr3StringStreamNew(
bufferData,
ANTLR3_ENC_8BIT,
bufferSize,
bufferName);
assert(input != NULL);
//Creates the lexer. Doesn't do anything until the parser(or you) tells it to.
pYourLexer lxr = YourLexerNew(input);
assert(lxr != NULL);
//Creates an empty token stream.
pANTLR3_COMMON_TOKEN_STREAM tstream = antlr3CommonTokenStreamSourceNew(
ANTLR3_SIZE_HINT, TOKENSOURCE(lxr));
assert(tstream != NULL);
//Creates a parser.
pYourParser psr = YourParserNew(tstream);
assert(psr != NULL);
//Run the parser rule. This also runs the lexer to create the token stream.
psr->some_parser_rule(psr);
}
ありがとうございます、それはかなりうまくいきます( 'bufferData'などを初期化した後)。 – ikh
ここに問題のコードhttp://stackoverflow.com/questions/5441810/antlr3-c-target-parser-return-misses-out-root-elementに動作します - あなたはほぼ確実に、より良いでしょうBUそこにある例 – Jimmy
ああ、ありがとう!それは私を始めさせるのに十分なはずです。 – ikh
@ikhこんにちは、まず、upvoted。そして私には質問があります。 http://stackoverflow.com/users/2729109/ikhと同じユーザーですか?あなたは韓国人ですか? –