The embedded 40250 script layer needs its own interpreter on five platforms. 2.7 is end-of-life, so nothing can be fetched from the target SDKs and the source is vendored (official 2.7.18 tarball, trimmed to 25MB; Lib/ stays for step 3's python27.zip). cpython-2.7.18/CMakeLists.txt builds one `mtpython` static library from exactly the 133 objects the reference libpython2.7.a contains, off by default behind -DMTGODOT_EMBED_PYTHON=ON. The source list and the built-in module table (config/config.c, 39 entries) are shared; pyconfig.h is a probe result and is not, so each platform keeps its own under config/<platform>/, regenerated by tools/py_embed/gen_pyconfig.sh and checked against the shared table. Three vendor patches, documented in docs/THIRD-PARTY.md: configure/configure.ac learn arm64 on macOS, and posixmodule.c undefines the process-control calls it hard-defines past pyconfig.h when building for iOS. macOS (ctest python.embed: every builtin imports, codecs and pickle work off the vendored Lib/), Android arm64 and iOS arm64 build. Linux needs a Linux host and Windows needs a MinGW-vs-MSVC decision; both are noted for step 4. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
88 lines
1.9 KiB
C
88 lines
1.9 KiB
C
/* Generated by Parser/pgen */
|
|
|
|
#define single_input 256
|
|
#define file_input 257
|
|
#define eval_input 258
|
|
#define decorator 259
|
|
#define decorators 260
|
|
#define decorated 261
|
|
#define funcdef 262
|
|
#define parameters 263
|
|
#define varargslist 264
|
|
#define fpdef 265
|
|
#define fplist 266
|
|
#define stmt 267
|
|
#define simple_stmt 268
|
|
#define small_stmt 269
|
|
#define expr_stmt 270
|
|
#define augassign 271
|
|
#define print_stmt 272
|
|
#define del_stmt 273
|
|
#define pass_stmt 274
|
|
#define flow_stmt 275
|
|
#define break_stmt 276
|
|
#define continue_stmt 277
|
|
#define return_stmt 278
|
|
#define yield_stmt 279
|
|
#define raise_stmt 280
|
|
#define import_stmt 281
|
|
#define import_name 282
|
|
#define import_from 283
|
|
#define import_as_name 284
|
|
#define dotted_as_name 285
|
|
#define import_as_names 286
|
|
#define dotted_as_names 287
|
|
#define dotted_name 288
|
|
#define global_stmt 289
|
|
#define exec_stmt 290
|
|
#define assert_stmt 291
|
|
#define compound_stmt 292
|
|
#define if_stmt 293
|
|
#define while_stmt 294
|
|
#define for_stmt 295
|
|
#define try_stmt 296
|
|
#define with_stmt 297
|
|
#define with_item 298
|
|
#define except_clause 299
|
|
#define suite 300
|
|
#define testlist_safe 301
|
|
#define old_test 302
|
|
#define old_lambdef 303
|
|
#define test 304
|
|
#define or_test 305
|
|
#define and_test 306
|
|
#define not_test 307
|
|
#define comparison 308
|
|
#define comp_op 309
|
|
#define expr 310
|
|
#define xor_expr 311
|
|
#define and_expr 312
|
|
#define shift_expr 313
|
|
#define arith_expr 314
|
|
#define term 315
|
|
#define factor 316
|
|
#define power 317
|
|
#define atom 318
|
|
#define listmaker 319
|
|
#define testlist_comp 320
|
|
#define lambdef 321
|
|
#define trailer 322
|
|
#define subscriptlist 323
|
|
#define subscript 324
|
|
#define sliceop 325
|
|
#define exprlist 326
|
|
#define testlist 327
|
|
#define dictorsetmaker 328
|
|
#define classdef 329
|
|
#define arglist 330
|
|
#define argument 331
|
|
#define list_iter 332
|
|
#define list_for 333
|
|
#define list_if 334
|
|
#define comp_iter 335
|
|
#define comp_for 336
|
|
#define comp_if 337
|
|
#define testlist1 338
|
|
#define encoding_decl 339
|
|
#define yield_expr 340
|