add references

This commit is contained in:
blueloveTH 2024-05-05 12:05:41 +08:00
parent 5725d66113
commit 63db196bf9
4 changed files with 44 additions and 1 deletions

View File

@ -29,6 +29,7 @@ jobs:
actions-cache-folder: 'emsdk-cache'
- name: Compile
run: |
python scripts/build_references.py
bash build_web.sh
mv web docs/.retype/static
###################################################

2
.gitignore vendored
View File

@ -28,3 +28,5 @@ main
pocketpy.dSYM
libpocketpy.dylib.dSYM/
main.dSYM/
docs/references.md

View File

@ -380,6 +380,7 @@ public:
PyObject* new_user_object(Args&&... args){
return heap.gcnew<T>(_tp_user<T>(), std::forward<Args>(args)...);
}
#endif
template<typename T>
Type _find_type_in_cxx_typeid_map(){
@ -395,7 +396,6 @@ public:
}
return it->second;
}
#endif
/********** private **********/
virtual ~VM();

View File

@ -0,0 +1,40 @@
import re
filepath = 'include/pocketpy/vm.h'
with open(filepath, 'r', encoding='utf-8') as f:
lines = f.readlines()
REGION_PATTERN = re.compile(r'#if PK_REGION\("(.+)"\)')
current_region = None
output = []
def parse_line(line: str):
output.append(line)
for line in lines:
if current_region:
if line.startswith('#endif'):
current_region = None
output.append('```\n\n')
else:
parse_line(line.strip(' '))
else:
m = REGION_PATTERN.match(line)
if m:
current_region = m.group(1)
output.append(f'### {current_region}\n')
output.append('```cpp\n')
with open('docs/references.md', 'w', encoding='utf-8') as f:
f.write('''---label: References
icon: code
order: 2
---
''')
content = ''.join(output)
# replace {...} to ; (multi-line match)
content = re.sub(r'{(.+?)}', r';', content, flags=re.DOTALL)
f.write(content)