日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

用C++对C++语法格式进行分析

發(fā)布時(shí)間:2025/3/20 c/c++ 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C++对C++语法格式进行分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

最近C++項(xiàng)目需要用到腳本,這就關(guān)系到如何綁定對象到腳本運(yùn)行環(huán)境。因使用到多套腳本語言,所以現(xiàn)有的綁定技術(shù),都不能滿足需求。所以只能尋求解析C++的頭文件,再根據(jù)描述進(jìn)行綁定。起初發(fā)現(xiàn)boost有一套,但boost實(shí)在太臃腫了,對項(xiàng)目之后開發(fā)環(huán)境的搭建有一定要求。我力求最簡明的項(xiàng)目管理,boost不太適合。自己寫套吧。

正文

C++的語法格式總結(jié)

  • 除編譯器指令#開頭與函數(shù)外,均必須要求分號結(jié)尾
  • 代碼塊除單條語句的if、do/while、for都必須在大括號/花括號“{}” 代碼塊有8種,命名空間,全局,類,結(jié)構(gòu),全局函數(shù),成員函數(shù),lambda,函數(shù)內(nèi)無名代碼塊
    • 命名空間與全局相同,僅在聲明前加“命名空間::”前綴
    • 類聲明塊與全局塊的區(qū)別有,友元聲明,成員訪問權(quán)限
  • 模板支持類與函數(shù)
  • 函數(shù)與模板有參數(shù)列表
  • 分號結(jié)尾的聲明可以是內(nèi)置類型(int、double等)、類、模板類、typedef出來的類型、函數(shù)指針、lambda
  • 函數(shù)可以重名
  • 類的成員函數(shù)訪問其他成員可以在此函數(shù)定義之后聲明,并不像全局函數(shù)那樣必須已經(jīng)聲明,所以用指針掃描一次C++文件是否合法是做不到的
  • 若是類化的枚舉(enum class),不需要對聲明所在范圍可見,否則同時(shí)要把成員也同時(shí)添加到所屬范圍

我不打算支持的,對于需求沒有必要性的

  • 命名空間
  • 模板
  • 函數(shù)體
  • 逗號分割的多個(gè)變量我不想很好的支持
  • 類型的校驗(yàn)
  • 默認(rèn)參數(shù)
  • union
  • 枚舉不判斷名稱沖突
  • lambda
  • 變量名不能以數(shù)字開始
  • 類的繼承
  • 函數(shù)指針

開發(fā)的原則

  • 暫不跨平臺,僅VS,不使用系統(tǒng)API這樣適于修改為跨平臺
  • 使用C++
  • iter只進(jìn)不退
  • 遇到語法錯(cuò)誤或文件結(jié)尾,拋異常
  • 遇到{則進(jìn)入塊處理
  • 處理;結(jié)尾的語言單元,函數(shù)必須自己處理完;及之前的內(nèi)容再返回
  • 成員函數(shù)定義代碼不分析,因?yàn)榈谝粭l原則做不到,成員函數(shù)可能會引用還未聲明的其他成員函數(shù)
  • 不為最好的性能,但可以在這個(gè)結(jié)構(gòu)上優(yōu)化到極致
  • 不求完整解析,但在這個(gè)框架上可以做到解析全部c++11與更高的版本特性
  • 無注釋,英文不好,中文注釋又不適合全球化

?

結(jié)構(gòu)描述

variant,method,type,comment,enumeration,enumeration_value從object繼承,它們都可以屬于全局或類或結(jié)構(gòu)體。

document表示一個(gè)c++編譯單元。

context表示一個(gè)上下文,是一個(gè)可以向上查找的隊(duì)列。document完成解析后存儲解析出來的變量、函數(shù)、類型。

reader,文件讀取器,一個(gè)向前的char迭代器,可以用istreambuf_iterator<char>(ifstream)替代。

?

使用

main函數(shù)有_DEBUG宏保護(hù),建議編譯為庫release使用。

#include <cpp_analysis.h>

try

{
 auto result = cpp_analysis::analysis("[cpp_header_file]");

 // todo

}
catch (logic_error& e)
{

// todo:
}

項(xiàng)目位置

https://github.com/FettLuo/cpp_analysis[新標(biāo)簽打開]

?

轉(zhuǎn)載于:https://www.cnblogs.com/fyter/p/analysis-cpp-syntex-format.html

總結(jié)

以上是生活随笔為你收集整理的用C++对C++语法格式进行分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一本色道久久综合亚洲精品小说 | 国产中文一区二区 | 中文字幕在线播放视频 | 涩涩网站入口 | 国产精品一区二区三区在线免费观看 | 国产欧美一区二区精品性色99 | 综合久草 | 人妻互换免费中文字幕 | 日韩精品123 | 精品人妻无码一区二区三区蜜桃一 | 欧亚一级片 | 国产高清一区在线观看 | 91美女在线观看 | 久久网页 | 丝袜理论片在线观看 | 中国黄色小视频 | 亚洲国产tv | 男女激情四射网站 | 狗爬女子的视频 | 国产精品黑人一区二区三区 | 欧美黑人猛交 | 欧美日韩欧美日韩在线观看视频 | 欧美a级在线免费观看 | 97人人草 | 国内精品嫩模av私拍在线观看 | 欧美大尺度做爰啪啪床戏明星 | 国内精品一区二区三区 | 国产极品在线观看 | 少妇被躁爽到高潮无码文 | 久久在线免费观看 | 四虎少妇做爰免费视频网站四 | 国产欧美亚洲精品 | 国产资源第一页 | 乳色吐息免费看 | 欧美日韩精品一区二区在线观看 | 白丝动漫美女 | 国产最新视频在线 | 国产成人精品免费网站 | www,jizz,com| 欧美a∨亚洲欧美亚洲 | 午夜免费影院 | 亚洲人人在线 | 亚洲在线网站 | 成人性生活视频 | 国产不卡视频一区二区三区 | 亚洲图片激情小说 | 欧美在线二区 | 精品国产一区二区三区在线 | 亚洲三级电影 | 精品久久久久久久久久久久久久久久久久 | 丝袜av网站 | 蜜臀久久99精品久久久久宅男 | www.久久精品视频 | 老司机午夜免费精品视频 | 日韩免费不卡视频 | 亚洲天堂导航 | 日韩精品一区二区免费视频 | 美女爆乳18禁www久久久久久 | 日韩精品一区二区三区国语自制 | av在线天堂| 国产传媒一区二区三区 | 亚洲一级伦理 | 亚洲专区视频 | 成人性生交大全免 | 日本涩涩视频 | 日韩精品免费视频 | 91在线精品一区二区三区 | 噼里啪啦免费高清看 | 九一爱爱 | 男人的影院 | 日日干天天 | 午夜三级福利 | 欧美国产大片 | 欧美视频一区二区三区 | 日韩天堂在线 | 亚洲精品视 | 婷婷综合激情网 | 91看片成人| 永久毛片 | 亚洲精品高潮久久久久久久 | 亚洲午夜在线播放 | 天天撸在线视频 | xxxx96| 国产91在线免费观看 | 人人爱爱人人 | 日日草日日干 | 在线播放国产精品 | 亚洲色妞 | 99自拍视频| 国产精品一线天粉嫩av | 91免费小视频 | 国产精品久久久久久网站 | 成人在线观看www | 日本偷拍一区 | 黄网站在线免费 | 日韩精品一区二区视频 | 鲁鲁狠狠狠7777一区二区 | 日韩特级毛片 | 欧美一区二区三区四区五区六区 |