[發明專利]一種用于ECU程序開發的代碼智能提示方法及其系統有效
| 申請號: | 201210335451.1 | 申請日: | 2012-09-12 |
| 公開(公告)號: | CN102880468A | 公開(公告)日: | 2013-01-16 |
| 發明(設計)人: | 楊國青;姜旭峰;葉晗;季喬卡;吳朝暉;趙民德 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 杭州天勤知識產權代理有限公司 33224 | 代理人: | 胡紅娟 |
| 地址: | 310027 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 ecu 程序 開發 代碼 智能 提示 方法 及其 系統 | ||
1.一種用于ECU程序開發的代碼智能提示方法,包括如下步驟:
(1)獲取當前用戶輸入的程序信息;所述的程序信息包括CAN網絡數據庫、C代碼源文件及其所引用的頭文件;
(2)對所述的程序信息進行分析并提取出定義信息,并將所述的定義信息填充到符號表中;
(3)通過查找所述的符號表對C代碼源文件中當前編輯行已輸入的變量進行分析,進而根據分析結果確定是否提示給出C代碼源文件中當前編輯行最后一變量在符號表中對應結構體所包含的成員。
2.根據權利要求1所述的用于ECU程序開發的代碼智能提示方法,其特征在于:所述的步驟(2)中,對程序信息進行分析并提取出變量定義信息的過程如下:
a.利用XML解析器對CAN網絡數據庫進行解析,得到CAN網絡數據庫內各變量的定義和各結構體的定義;
b.利用ANTLR開源語法分析器對C代碼源文件所引用的每個頭文件進行分析,得到一棵語法樹;
c.自上而下遍歷所述的語法樹,從中提取每個頭文件內各變量的定義和各結構體的定義;
d.根據步驟b和c,對C代碼源文件進行同樣操作,得到C代碼源文件內各變量的定義和各結構體的定義。
3.根據權利要求1所述的用于ECU程序開發的代碼智能提示方法,其特征在于:所述的步驟(3)中,通過查找符號表對C代碼源文件中當前編輯行已輸入的變量進行分析的過程如下:
a.首先,查找C代碼源文件中當前編輯行第一個變量是否在符號表中存在定義:若存在,則執行步驟b;若不存在,則表示當前編輯行無需自動提示;
b.判斷存在定義的當前變量的下一變量是否為空:若是,則表示當前編輯行需自動提示;若否,則執行步驟c;
c.從符號表中讀取當前變量對應的結構體所包含的成員,判斷當前變量的下一變量是否為當前變量的成員:
若是,則查找下一變量是否在符號表中存在定義:若存在,則將下一變量作為存在定義的當前變量,并返回步驟b;若不存在,則表示當前編輯行無需自動提示;
若否,則表示當前編輯行無需自動提示。
4.一種用于ECU程序開發的代碼智能提示系統,其特征在于,包括:
XML解析器,用于對CAN網絡數據庫進行解析,得到CAN網絡數據庫內各變量的定義和各結構體的定義;
ANTLR開源語法分析器,用于對C代碼源文件及其所引用的每個頭文件進行分析,提取C代碼源文件內各變量的定義和各結構體的定義以及每個頭文件內各變量的定義和各結構體的定義;
符號表,用于存放XML解析器和ANTLR開源語法分析器所提取得到的定義信息;
查表分析模塊,用于通過查找符號表對C代碼源文件中當前編輯行已輸入的變量進行分析,并輸出分析結果;
智能提示模塊,用于根據分析結果確定是否提示給出C代碼源文件中當前編輯行最后一變量在符號表中所包含的成員。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210335451.1/1.html,轉載請聲明來源鉆瓜專利網。





