From cec0c9ce81daa60f84e230e1d18fe6331b15eae1 Mon Sep 17 00:00:00 2001 From: PuqiAR Date: Wed, 24 Dec 2025 18:20:53 +0800 Subject: [PATCH] =?UTF-8?q?[Feat]=20=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=B1=82=E7=BA=A7=E7=9A=84=E8=AF=B4=E6=98=8E=20(README)?= =?UTF-8?q?=EF=BC=8C=E4=B8=94=E7=8E=B0=E5=9C=A8=E5=BF=BD=E7=95=A5=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6test.fig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +--- README.md | 60 ++++++++++++++++++++++-------------------------- README_ZH-CN.md | 61 +++++++++++++++++++++++-------------------------- 3 files changed, 56 insertions(+), 69 deletions(-) diff --git a/.gitignore b/.gitignore index cf9a1ba..55f9b92 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,4 @@ build/ .vscode .VSCodeCounter -/test.fig - -docs/node_modules \ No newline at end of file +/test.fig \ No newline at end of file diff --git a/README.md b/README.md index 64f7459..cce070f 100644 --- a/README.md +++ b/README.md @@ -20,39 +20,33 @@ - **Clean C++ implementation** - Modern C++23 with RAII and smart pointers ### ๐Ÿ“ Project Structure - Fig/ - โ”œโ”€โ”€ src/ - โ”‚ โ”œโ”€โ”€ lexer.cpp # Lexical analysis - โ”‚ โ”œโ”€โ”€ parser.cpp # Syntax analysis - โ”‚ โ”œโ”€โ”€ evaluator.cpp # Interpreter/execution engine - โ”‚ โ””โ”€โ”€ value.cpp # Type system implementation - โ”œโ”€โ”€ include/ - โ”‚ โ”œโ”€โ”€ argparse - โ”‚ โ”œโ”€โ”€ magic_enum - โ”‚ โ”œโ”€โ”€ Ast # Abstract syntax tree definitions - โ”‚ โ”œโ”€โ”€ value.hpp # Type system header - โ”‚ โ”œโ”€โ”€ Value/ # Type system definitions - โ”‚ โ”œโ”€โ”€ ... - โ”‚ โ”œโ”€โ”€ AstPrinter.hpp # Ast printer - โ”‚ โ”œโ”€โ”€ context(_forward).hpp # Environment/Context system - โ”‚ โ”œโ”€โ”€ core.hpp # Core informations - โ”‚ โ”œโ”€โ”€ error.hpp # Exception system - โ”‚ โ”œโ”€โ”€ errorLog.hpp # Colored-Print error log - โ”‚ โ”œโ”€โ”€ fig_string.hpp # Fig UTF-8 string - โ”‚ โ”œโ”€โ”€ module.hpp # Package/Module system - โ”‚ โ”œโ”€โ”€ utils.hpp - โ”‚ โ”œโ”€โ”€ token.hpp # Token definitions - โ”‚ โ”œโ”€โ”€ lexer.hpp # Lexical analysis - โ”‚ โ”œโ”€โ”€ parser.hpp # Syntax analysis and AST - โ”‚ โ”œโ”€โ”€ evaluator.hpp # Interpreter and Control flows - โ”‚ โ”œโ”€โ”€ warning.hpp # STD-Warnings - โ”œโ”€โ”€ ExampleCodes/ # Sample programs - โ”œโ”€โ”€ fig-vscode/ # vscode extension - โ”œโ”€โ”€ .clang-format # Clang format styles - โ”œโ”€โ”€ test.fig # Test file (dev) - โ”œโ”€โ”€ LICENSE # Fig project license - โ”œโ”€โ”€ xmake.lua # XMake configurations - โ””โ”€โ”€ Logo/ # Fig's Logo +. +โ”œโ”€โ”€ ExampleCodes # Example programs & performance tests +โ”‚ โ””โ”€โ”€ SpeedTest # Performance benchmark samples +โ”œโ”€โ”€ LICENSE # Project license +โ”œโ”€โ”€ Logo # Project logo assets +โ”œโ”€โ”€ README.md # English README +โ”œโ”€โ”€ README_ZH-CN.md # Chinese README +โ”œโ”€โ”€ compile_flags.txt # Compiler flags helper +โ”œโ”€โ”€ fig-vscode # VSCode extension project +โ”‚ โ”œโ”€โ”€ node_modules # Extension dependencies +โ”‚ โ”œโ”€โ”€ out # Built extension output +โ”‚ โ”œโ”€โ”€ src # Extension source code +โ”‚ โ””โ”€โ”€ syntaxes # Syntax highlighting definition +โ”œโ”€โ”€ src # Core Fig language source +โ”‚ โ”œโ”€โ”€ Ast # AST definitions +โ”‚ โ”œโ”€โ”€ Context # Runtime context +โ”‚ โ”œโ”€โ”€ Core # Core utilities (UTF8/string/etc.) +โ”‚ โ”œโ”€โ”€ Error # Error handling system +โ”‚ โ”œโ”€โ”€ Evaluator # Interpreter / evaluator +โ”‚ โ”œโ”€โ”€ Lexer # Lexical analyzer +โ”‚ โ”œโ”€โ”€ Module # Modules and builtins +โ”‚ โ”œโ”€โ”€ Parser # Parser +โ”‚ โ”œโ”€โ”€ Token # Token definitions +โ”‚ โ”œโ”€โ”€ Utils # Utilities & helper headers +โ”‚ โ””โ”€โ”€ Value # Runtime type/value system +โ”œโ”€โ”€ test.fig # Test script +โ””โ”€โ”€ xmake.lua # Xmake build config ## Language Philosophy Fig is designed around several core principles: diff --git a/README_ZH-CN.md b/README_ZH-CN.md index 3f98a45..73797b2 100644 --- a/README_ZH-CN.md +++ b/README_ZH-CN.md @@ -20,39 +20,34 @@ - **ๅนฒๅ‡€็š„ C++ ๅฎž็Žฐ** - ็Žฐไปฃ C++23๏ผŒไฝฟ็”จ RAII ๅ’Œๆ™บ่ƒฝๆŒ‡้’ˆ ### ๐Ÿ“ ้กน็›ฎ็ป“ๆž„ - Fig/ - โ”œโ”€โ”€ src/ - โ”‚ โ”œโ”€โ”€ lexer.cpp # ่ฏๆณ•ๅˆ†ๆž - โ”‚ โ”œโ”€โ”€ parser.cpp # ่ฏญๆณ•ๅˆ†ๆž - โ”‚ โ”œโ”€โ”€ evaluator.cpp # ่งฃ้‡Šๅ™จ/ๆ‰ง่กŒๅผ•ๆ“Ž - โ”‚ โ””โ”€โ”€ value.cpp # ็ฑปๅž‹็ณป็ปŸๅฎž็Žฐ - โ”œโ”€โ”€ include/ - โ”‚ โ”œโ”€โ”€ argparse - โ”‚ โ”œโ”€โ”€ magic_enum - โ”‚ โ”œโ”€โ”€ Ast # ๆŠฝ่ฑก่ฏญๆณ•ๆ ‘ๅฎšไน‰ - โ”‚ โ”œโ”€โ”€ value.hpp # ็ฑปๅž‹็ณป็ปŸๅคดๆ–‡ไปถ - โ”‚ โ”œโ”€โ”€ Value/ # ็ฑปๅž‹็ณป็ปŸๅฎšไน‰ - โ”‚ โ”‚ โ”œโ”€โ”€ ... - โ”‚ โ”œโ”€โ”€ AstPrinter.hpp # AST ๆ‰“ๅฐๅ™จ - โ”‚ โ”œโ”€โ”€ context(_forward).hpp # ็Žฏๅขƒ/ไธŠไธ‹ๆ–‡็ณป็ปŸ - โ”‚ โ”œโ”€โ”€ core.hpp # ๆ ธๅฟƒไฟกๆฏ - โ”‚ โ”œโ”€โ”€ error.hpp # ๅผ‚ๅธธ็ณป็ปŸ - โ”‚ โ”œโ”€โ”€ errorLog.hpp # ๅฝฉ่‰ฒๆ‰“ๅฐ้”™่ฏฏๆ—ฅๅฟ— - โ”‚ โ”œโ”€โ”€ fig_string.hpp # Fig UTF-8 ๅญ—็ฌฆไธฒ - โ”‚ โ”œโ”€โ”€ module.hpp # ๅŒ…/ๆจกๅ—็ณป็ปŸ - โ”‚ โ”œโ”€โ”€ utils.hpp - โ”‚ โ”œโ”€โ”€ token.hpp # Token ๅฎšไน‰ - โ”‚ โ”œโ”€โ”€ lexer.hpp # ่ฏๆณ•ๅˆ†ๆž - โ”‚ โ”œโ”€โ”€ parser.hpp # ่ฏญๆณ•ๅˆ†ๆžๅ’Œ AST - โ”‚ โ”œโ”€โ”€ evaluator.hpp # ่งฃ้‡Šๅ™จๅ’ŒๆŽงๅˆถๆต - โ”‚ โ”œโ”€โ”€ warning.hpp # ๆ ‡ๅ‡†่ญฆๅ‘Š - โ”œโ”€โ”€ ExampleCodes/ # ็คบไพ‹็จ‹ๅบ - โ”œโ”€โ”€ fig-vscode/ # vscodeไปฃ็ ๆ’ไปถ - โ”œโ”€โ”€ .clang-format # Clang ๆ ผๅผๅŒ–้ฃŽๆ ผ - โ”œโ”€โ”€ test.fig # ๆต‹่ฏ•ๆ–‡ไปถ๏ผˆๅผ€ๅ‘็”จ๏ผ‰ - โ”œโ”€โ”€ LICENSE # Fig ้กน็›ฎ่ฎธๅฏ่ฏ - โ”œโ”€โ”€ xmake.lua # XMake ้…็ฝฎ - โ””โ”€โ”€ Logo/ # Fig ็š„ Logo +. +โ”œโ”€โ”€ ExampleCodes # ็คบไพ‹ไปฃ็ ไธŽๆ€ง่ƒฝๆต‹่ฏ•ๆ ทไพ‹ +โ”‚ โ””โ”€โ”€ SpeedTest # ๆ€ง่ƒฝ็›ธๅ…ณๆต‹่ฏ•็คบไพ‹ +โ”œโ”€โ”€ LICENSE # ้กน็›ฎๅผ€ๆบๅ่ฎฎ +โ”œโ”€โ”€ Logo # ้กน็›ฎๆ ‡่ฏ†่ต„ๆบ +โ”œโ”€โ”€ README.md # ่‹ฑๆ–‡ README +โ”œโ”€โ”€ README_ZH-CN.md # ไธญๆ–‡ README +โ”œโ”€โ”€ compile_flags.txt # C/C++ ็ผ–่ฏ‘ๅ™จๅ‚ๆ•ฐๆ็คบ +โ”œโ”€โ”€ fig-vscode # VSCode ๆ’ไปถ้กน็›ฎ +โ”‚ โ”œโ”€โ”€ node_modules # VSCode ๆ’ไปถไพ่ต– +โ”‚ โ”œโ”€โ”€ out # ๆž„ๅปบไบง็‰ฉ +โ”‚ โ”œโ”€โ”€ src # VSCode ๆ’ไปถๆบ็  +โ”‚ โ””โ”€โ”€ syntaxes # ่ฏญๆณ•้ซ˜ไบฎๅฎšไน‰ +โ”œโ”€โ”€ src # Fig ่ฏญ่จ€ๆ ธๅฟƒๆบ็  +โ”‚ โ”œโ”€โ”€ Ast # ๆŠฝ่ฑก่ฏญๆณ•ๆ ‘่Š‚็‚น +โ”‚ โ”œโ”€โ”€ Context # ่ฟ่กŒไธŠไธ‹ๆ–‡ +โ”‚ โ”œโ”€โ”€ Core # ๆ ธๅฟƒๅŸบ็ก€่ฎพๆ–ฝ๏ผˆๅญ—็ฌฆไธฒ/UTF8 ็ญ‰๏ผ‰ +โ”‚ โ”œโ”€โ”€ Error # ้”™่ฏฏ็ณป็ปŸ +โ”‚ โ”œโ”€โ”€ Evaluator # ่งฃ้‡Šๆ‰ง่กŒๅ™จ +โ”‚ โ”œโ”€โ”€ Lexer # ่ฏๆณ•ๅˆ†ๆžๅ™จ +โ”‚ โ”œโ”€โ”€ Module # ๆจกๅ—ไธŽๅ†…็ฝฎๅบ“ +โ”‚ โ”œโ”€โ”€ Parser # ่ฏญๆณ•่งฃๆžๅ™จ +โ”‚ โ”œโ”€โ”€ Token # Token ๅฎšไน‰ +โ”‚ โ”œโ”€โ”€ Utils # ๅฎž็”จๅทฅๅ…ทไธŽ็ฌฌไธ‰ๆ–น header +โ”‚ โ””โ”€โ”€ Value # ่ฟ่กŒๆ—ถ็ฑปๅž‹็ณป็ปŸไธŽๅ€ผ่กจ็คบ +โ”œโ”€โ”€ test.fig # ๆต‹่ฏ•่„šๆœฌ +โ””โ”€โ”€ xmake.lua # Xmake ๆž„ๅปบ่„šๆœฌ + ## ่ฏญ่จ€่ฎพ่ฎกๅ“ฒๅญฆ Fig ๅ›ด็ป•ๅ‡ ไธชๆ ธๅฟƒๅŽŸๅˆ™่ฎพ่ฎก๏ผš