簡體   English   中英

解析多個C源文件

[英]Parsing multiple C source files

我有多個C源文件和相應的頭文件。 我正在嘗試使用編譯器(例如ANTLR)來解析這些文件。 在ANTLR解析器語法中,您可以使用

@parser::includes
{#include"a.h"}

您可以開始解析第一個文件,例如

CommonTree tree = Parser.start("a.c"); 

解析器將解析頭文件

a.h 

但是如果您有多個源文件egbc,cc等及其各自的頭文件,則如何解析文件。

C是要解析的小豬---令牌的語義類型取決於它被聲明為什么。 考慮:

T(*b)[4]

如果T是類型名稱,則這是一個變量聲明。 如果是標識符,則為函數調用。 為了解決這個問題,任何希望實際工作的C解析器都必須保留完整的類型環境,這意味着它必須是C編譯器中令人討厭的一大塊。

有用於C的ANTLR解析器可以正確處理所有這些問題,但是它們使用起來並不容易,我對它們沒有任何經驗,因此不能在此處發表評論。

相反,您可能想看看使用外部工具將C解析為更易於處理的內容。 gcc-xml就是這樣一種; 它使用gcc本身來解析源文件,然后吐出更易於處理的XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM