神算(py)的语法
替换UNICODE_..._,避免冲突.避免默认msvcrt
libucrt与微软的冲突了.要改,主要是静态lib/动态lib之间的问题.将libucrt.lib暂时去掉.
24.1.摘要
改变神算的语法不仅仅是改Grammar/神算.gram.
注意:这些说明适用于神算3.9及更高版本.早期版本不一样.您不应更改早期神算版本语法,但,可使用GitHub追踪devguide中此文件的早期版本.
24.2.清单
注意:有时,不管用.放弃之前,请先试试make clean.
Grammar/神算.gram:语法,带构建AST节点的操作.修改后,运行make regen-pegen来重生成Parser/parser..c(跑神算的解析器生成器Tools/peg_generator).
Grammar/Tokens添加新令牌类型.改变后,跑make regen-token来生成Include/token.h,Parser/token.c, Lib/token.py和Doc/library/token-list.inc,改了python.gram和Tokens的话,先跑make regen-token,然后再跑make regen-pegen.
要改Parser/神算.asdl来匹配语法.然后运行make regen-ast来生成Include/Python-ast.h和Python/Python-ast.c.
Parser/tokenizer.c包含令牌代码.如这里可加新注释或串类型.
要改Python/ast.c来使语法所需的AST对象有效.
要改Python/ast_unparse.c来使解析AST对象有效.
Lib/ast.py要改_Unparser来匹配新AST节点.
要改Doc/library/ast.rst以匹配新AST节点.
测试新改的语法test_grammar.py.
可能要调整库模块pyclbr.
要改令牌生成器Lib/tokenize.py,注意改Doc/reference/中的文档.

在继续编译过程中.可能会先将graminit.c改为gbk,然后再在makefile里面将regen-allregen-语法给去掉,然后make regen-all.现在还在探索阶段.可能有错.