<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>MidstreamBlog</title>
<link>https://midstream.cn/</link>
<atom:link href="https://midstream.cn/index.xml" rel="self" type="application/rss+xml"/>
<description>中期胡言乱语</description>
<generator>quarto-1.9.36</generator>
<lastBuildDate>Tue, 14 Oct 2025 16:00:00 GMT</lastBuildDate>
<item>
<title>蛋糕的故事</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/蛋糕的故事/</link>
<description> 






&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;乔静仪醒来的时候已经是下午了，窗外灰蒙蒙的亮，不刺眼但有些恼人。&lt;/p&gt;
&lt;p&gt;她看了眼手表，4个半小时的睡眠。昨晚通宵改论文，早上发给导师，似乎终是告一段落了。&lt;/p&gt;
&lt;p&gt;乔静仪自己是没有戴手表的习惯的，这块可以监控睡眠质量的智能手表是吉林去年送给她的——他自己也有一块，几乎从不离身。吉林曾给她展示手表的诸多功能，比如可以看到家庭成员彼此的位置，或是完成了什么运动，还有生命体征监控云云。&lt;/p&gt;
&lt;p&gt;洗漱完毕，乔静仪简单扎了一个马尾，走入温吞吞的暮春。&lt;/p&gt;
&lt;p&gt;“要蛋糕，”王志宏是这样说的，“要很多蛋糕，很多。”&amp;nbsp;&lt;/p&gt;
&lt;p&gt;于是她去买水果，做蛋糕用的草莓。&lt;/p&gt;
&lt;p&gt;她本来不必这么着急赶完论文的，这应该是清闲的一周。不过，王志宏突然打电话联系了她和吉林，说在清净凉爽的水库边将有一场派对，主办方是王志宏的熟人，会需要蛋糕。有王志宏牵线，主办方给的价格算公道，而吉林也觉得周末去山里一趟好过总宅在家里。&lt;/p&gt;
&lt;p&gt;乔静仪也说不来自己到底愿不愿意去这一趟，还在念书的她做蛋糕只是兴趣使然，在微信上营业，偶尔有些朋友找她订蛋糕。&lt;/p&gt;
&lt;p&gt;她走在去水果店的路上，打电话让吉林下班路上顺便买一些别的材料送过来。今天是工作日，仅有几个拖着小推车的老太太和她一同，嘴里含糊而大声地用本地话交谈。乔静仪感到有点烦躁，她根本听不懂这些佝偻者在说什么，但是其他匆匆路过的人显然认为她听得懂，并且认为她家里也有一个同样破烂的小推车，只是今天没有带出来。&lt;/p&gt;
&lt;p&gt;她租房子的小区就在学校边上，甚至在家里可以看到同学们的宿舍楼，但她却只觉得已经和学校疏远。想起本科时候，宿舍里四个女生因为一个会复读的玩偶能笑闹一晚上，笑得第二天肚子酸痛。&lt;/p&gt;
&lt;p&gt;或许自己其实并不愿意接这一单，乔静仪想。可是她也找不到理由说服自己不接，自己这周比较清闲，做蛋糕是自己的爱好，能赚点外快，男朋友又想去山里转转。&lt;/p&gt;
&lt;p&gt;不去似乎是有些无理取闹了。她不是那种可以捏着嗓子说”我就是不想去嘛”的女生，她从小就被教导要”得体”。&lt;/p&gt;
&lt;p&gt;“得体”是乔静仪小时候父亲最常对她提到的词汇。在幼儿园和小学的年纪，乔静仪都更像个男孩子，相比于那些文静的爱好，她更喜欢探险，疯跑，和别的小男孩一起踢球或是恶作剧。她至今都有时会觉得那个假小子一样的自己还时而浮现。&lt;/p&gt;
&lt;p&gt;那时候乔静仪尤其喜欢探险，几个孩子在花坛或是树丛中穿行，假装是在深海漫游或是踏上外星球的表面。她总想象自己驾驶一艘小小的潜水艇，或是穿上宇航服，更多的是一个厚实的玻璃气泡仓。于是她可以坦然面对深海或是丛林，于是可以翻开墙根的草丛，看到里面仓皇逃窜的蜈蚣和蚰蜒。曾经有一两位乔静仪最要好的朋友，她邀请他们在探索的时候到自己的气泡仓里。&lt;/p&gt;
&lt;p&gt;“女孩子要文静，要优雅，”父亲说，“你每天总疯疯癫癫的像什么样。&lt;/p&gt;
&lt;p&gt;老师总会让她想想自己名字的含义。&lt;/p&gt;
&lt;p&gt;乔静仪自己也记不清楚从什么时候开始，她和那些一起攀墙钻洞的男孩子们逐渐疏远了，四年级？还是五年级或者六年级？她依稀记得那时候她开始快速的长个子，并且很抗拒穿小背心。她曾一度认为自己变得”得体”是来自父母长期的规劝，但长大之后想来似乎又不完全是这样。她记得学校后门处和他们很熟悉的小土狗，孩子们突然开始好奇它的性别，把它肚皮朝上抱起来，一堆脑袋凑在一起观察——男孩子们花了许久才确定这是一只小母狗，有人用奇怪的眼神看乔静仪，她是唯一的女生。男孩子们也曾聚在一起吹嘘自己要娶七个老婆十个老婆，有人喊让别人娶乔静仪，大家惊叫着逃开，女孩儿站在原地附和着大家一起笑。&lt;/p&gt;
&lt;p&gt;假装探索的游戏已经很久没有做过了，孩子们不再感兴趣低幼的虚构，但夜晚躺在床上的时候，乔静仪却还是总会在脑海里幻想，自己躺在一个仅有她床铺大小的封闭小艇里，有干爽的被单和抱枕，透过圆形的玻璃窗看着落在海面上的暴雨，小艇一直一直往前航行。&lt;/p&gt;
&lt;p&gt;当然，在深夜的幻想之外，乔静仪自己也没有再做过什么探索的游戏了，她自己也觉得这件事儿幼稚，于是捡起二三年级时候父母给自己买的那些没来得及看的书。高中时，她被一只误入书房的飞蛾吓得上蹿下跳，于是疑惑自己曾经为何敢于伸手进草丛里捕捉那些多足的生物。&lt;/p&gt;
&lt;p&gt;水果店在小区外，临一条双向四车道的宽阔马路。灰白的天空让人想到拍摄证件照时候的白色柔光箱，抑或是手术室的无影灯，均匀而孤寂。&lt;/p&gt;
&lt;p&gt;乔静仪就是在这x光片的色调中看到的那只婴儿车。&lt;/p&gt;
&lt;p&gt;那是个米黄色的婴儿车，一些鲜艳的织物堆在里面，像是条毛巾或是小被单。她从小区巷口拐入主干道时，那辆婴儿车就孤零零在宽阔马路中央的安全岛上，车流从两侧呼啸而过。&lt;/p&gt;
&lt;p&gt;那个婴儿是被有意遗弃的，乔静仪几乎有种直觉。那个安全岛像是波涛中的一个气泡仓。&lt;/p&gt;
&lt;p&gt;等到人行绿灯亮起时乔静仪靠近到婴儿车边，近看时方才发现婴儿车其实有些破旧了，车座位上是一条毯子，里面是一只小奶狗，竟睡得十分安详。一张小纸板挂在婴儿车上，写着”请帮帮她”，哦，是个小姑娘。&lt;/p&gt;
&lt;p&gt;她还要去买水果，再有一个半小时吉林应该也过来了，今晚要开始制作第一波的蛋糕。踏着斑马线离开那个安全岛的时候，乔静仪生怕迎面走来的人认为这小狗是被自己遗弃的。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;乔静仪站在窗前张望，她刚把草莓用淡盐水泡上，吉林还在路上。&lt;/p&gt;
&lt;p&gt;高楼拥挤，租住的公寓的视野并不好，再有一会儿就天黑了，她不知道那个婴儿车是否还在停在路中间。为什么会有人将这样一只小奶狗遗弃？为什么要遗弃在马路中心？婴儿车反复出现在乔静仪脑海里，小狗身下的毯子温暖而柔软，让人简直想睡进去。乔静仪挪开她种植的薄荷，用力地贴到阳台的拐角，可是她把脸贴到最侧面也只能勉强看到路口的另外半边。她听到门口有声音，应该是吉林。&lt;/p&gt;
&lt;p&gt;吉林双手都拎着袋子，是乔静仪去给他开的门，并不高大的他显得有些疲惫。&lt;/p&gt;
&lt;p&gt;“买了糖，奶油，鸡蛋，牛奶，猕猴桃，还有一些肉桂粉。” 吉林拎着袋子换鞋，动作滑稽，“买了些卤菜和烧鸭饭。”&lt;/p&gt;
&lt;p&gt;“肉桂粉？”乔静仪记得这不是她给吉林的单子里的内容。&lt;/p&gt;
&lt;p&gt;“对，你记不记得上次我们在那个咖啡馆吃到的肉桂的蛋糕，你也说很好吃，我觉得我们可以弄点肉桂味的。” 他踢踢踏踏走进里屋。&lt;/p&gt;
&lt;p&gt;“真有你的，”乔静仪有点无语，“王志宏说要水果蛋糕，又不是肉桂卷。”&amp;nbsp;&lt;/p&gt;
&lt;p&gt;“不碍事，你可以做肉桂水果蛋糕，发明一下，王志宏不敢挑剔你的。”吉林的声音从卫生间里传来。&lt;/p&gt;
&lt;p&gt;乔静仪摇摇头，她本人并不喜欢肉桂。她比较喜欢清新的口味，像是薄荷、罗勒，而非迷迭香，她做的蛋糕也一向甜度很低。吉林知道她不喜欢甜，但并不知道她不喜欢肉桂——对于许多无关紧要的小厌恶，乔静仪并不愿表露——例如，她也没有多喜欢王志宏，这同样是吉林所不知道的。&lt;/p&gt;
&lt;p&gt;他们面对面坐在餐桌前吃烧鸭饭。吉林买来的一袋东西占据了不大的桌面，使得卤菜的摆放有些局促，于是他起身，把那一整袋子食材挪到了厨房里。&lt;/p&gt;
&lt;p&gt;乔静仪是故意没有把那袋东西拿走的，她是个很爱整洁的人，从来都难以忍受桌面上就这么摞着一袋子东西，只是今天她觉得她不应该继续和往常一样先行收拾这些物什。她自己也说不来具体为什么，但理由应当很多：她想起下午和自己同路的那些老太们，拒绝这种充满主妇味儿的行为似乎意味着她在为某些牺牲而发声；又或许，不接手这些食材是她对这次出行和做蛋糕任务的抗争，她不想让吉林觉得她自己是乐呵呵去做这一切的；还可能，这是在表示对袋子里那些肉桂粉的不满，他似乎把做蛋糕想成多么简单的事情，并且，他还不知道她不喜欢肉桂……&lt;/p&gt;
&lt;p&gt;总之，她似乎有很多该吵闹的，但她能做到的最激烈的表达就是把袋子留在桌子上。于是桌子上的杂物让她难受，且吉林也应当相同的难受。当她看到吉林用筷子夹卤菜的时候反复尝试绕过那个大袋子侧面的凸起时，她觉得吉林应准备要说些什么了，但是他把袋子拎到了厨房。&lt;/p&gt;
&lt;p&gt;乔静仪看着吉林的背影和那鼓胀沉重的白色塑料袋，越发觉得他瘦小且疲劳。她又突然觉得这才是她要的结果，那些不满那些想要叫嚷出来的，她从最开始就没打算说。&lt;/p&gt;
&lt;p&gt;吉林在不加班的日子和周末会来乔静仪这里，比如今天，但他往往晚上吃完饭还要在电脑前敲敲打打一到两个小时，所以吉林来的日子都是乔静仪刷碗和收拾，但她今天不想刷碗。&lt;/p&gt;
&lt;p&gt;“今天你去刷碗。”她和吉林说。&lt;/p&gt;
&lt;p&gt;“好的。”吉林应该不会拒绝，她也知道。&lt;/p&gt;
&lt;p&gt;“今天吃的烧鸭饭，没多少要洗的盘子，我今天好累。”于是她解释了原因。&lt;/p&gt;
&lt;p&gt;吉林刷碗时候，她跟他说了那只小狗的事情。&lt;/p&gt;
&lt;p&gt;“或许是有人家里狗生的小狗，他们又不打算养，然后就希望有人领养吧。”吉林说。&lt;/p&gt;
&lt;p&gt;“这样的话难道不应该先自己养着，然后找朋友之类的转发一下领养信息吗？很多人还要面试领养的人呢。”&lt;/p&gt;
&lt;p&gt;“可能是有些原因没法继续养着？”吉林拿着洗好的盘子，一时间不太知道该往哪放，他不是很熟悉乔静仪租住的这个房子的厨房。&lt;/p&gt;
&lt;p&gt;“这真的很不负责，”乔静仪看着吉林手里拿着的那只盘子不断滴下水滴到地面，然后被拖鞋踩成鞋印，“而且小狗只是被放在婴儿车里，它要是爬出来到马路上可能就被撞死了。”&lt;/p&gt;
&lt;p&gt;“不会的，会有好心人收养那只小狗的，”吉林找到了碗柜正确的门，“那只小狗很可爱不是吗？”&lt;/p&gt;
&lt;p&gt;“那它还被抛弃了！”乔静仪越发觉得不忍。&lt;/p&gt;
&lt;p&gt;“我觉得如果现在你出门看一下，那只小狗应该已经被愿意收养它的人抱走了，它会有个好归宿的。”&lt;/p&gt;
&lt;p&gt;“那也有可能是被撞死了，然后婴儿车被当作垃圾收走了。”&lt;/p&gt;
&lt;p&gt;吉林停下手里的活儿，看向乔静仪一会儿，“但是我们现在是没法领养的，不是吗？”&lt;/p&gt;
&lt;p&gt;吉林很爱说”不是吗”，或许他自己都没有意识到。乔静仪知道，当吉林认真地看向她，平静的反问时，言下之意是：我们不应该因为这件事情吵架，或者是，我不想和你吵架。&lt;/p&gt;
&lt;p&gt;他们几乎不吵架。&lt;/p&gt;
&lt;p&gt;于是他们双双沉默下来，吉林把最后的碗筷归位，然后离开了厨房，应该是按照惯例处理些许工作。见他离开，乔静仪用拖布擦干净了地上的水渍和脚印，她尽量避免拖把碰撞到推拉门，否则那声音就仿佛是在埋怨吉林刷碗没刷好。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;被深夜的惊雷震醒的时候，大约是凌晨了。乔静仪听到了暴雨的声音，哗哗声隔着窗帘侵入进来，很响。卧室的门朝向房子内侧，对面是卫生间，可雨声从门缝中传来，模糊着人的感官，她被雨声包围了，她几乎觉得自己已经置身雨中，如果打开卧室的门，外面可能是大风和烟雾般的水。&lt;/p&gt;
&lt;p&gt;好在她听到了雨点撞击在窗上的声音，这是令人安心的声音，说明玻璃还在。雨点应当很大，打在玻璃上沉闷有力，隐约的还有一点回响，乔静仪能听出玻璃的稳固，雨点会在玻璃表面破裂开来，兴许还冒出一股水汽。&lt;/p&gt;
&lt;p&gt;厚实的玻璃给乔静仪安全感，在这场浮起整座城市的大雨中，群楼隐去，这间卧室被孤立出来，漂浮在苍莽的水雾和大风中，没有楼上也没有楼下，安稳地被锚定在一个确切的空间坐标，没有半点颤抖，避难所式的安全感。&lt;/p&gt;
&lt;p&gt;坐起来靠在床头并感到凉爽，夜里应该有降温。吉林没有醒，并且睡得很沉很端正，于是这间卧室变成了宇航船，乔静仪是值守者，吉林是冬眠者，她唯一的同伴。她从窗帘的缝隙看沿着玻璃窗流下的水。&lt;/p&gt;
&lt;p&gt;乔静仪喜欢暴雨，当你在你的气泡舱里的时候，暴雨给人以踏实的孤独，一种庆幸的幸福。&lt;/p&gt;
&lt;p&gt;然而，当乔静仪冥想一般散开她的思维时，她想起来那只铺垫着温柔毯子的婴儿车，这令她感到惶恐——如果那只小狗始终没有被人收养，那么它此刻就正在大雨中走向死亡，婴儿车小小的遮阳棚无法抵御风雨，毛毯也将变成冰冷的沼泽，吸走其上的任何体温。&lt;/p&gt;
&lt;p&gt;诚然，如吉林所说，他们并不能领养一只小狗，这点乔静仪自己也清楚，因此当吉林说出这句话时，她也觉到自己的对小狗的担心有些惺惺作态。吉林每日在家的时间并不长，显然无法养宠物；而乔静仪自己，她深知自己受不了宠物所带来的各种问题，即使她喜欢小猫小狗——不要说训练和遛狗等一众需求，仅仅是日常打理都将极大地挑战她对整洁的苛刻要求。因此她日常多半只是在手机上刷别人的宠物，以此过过瘾。&lt;/p&gt;
&lt;p&gt;此外，又如吉林所说，大概率这只小狗已经被人领走了，她也不认为这辆引人注意的婴儿车会在马路中间被放到深夜。可是她止不住担心这只小狗，在未知的状态下，再大的可能性也只是可能性而已，她觉得她需要出门去看一眼，哪怕是为了自己的睡眠。如果那只婴儿车真的还孤零零地在大雨之中的话，乔静仪想，那也容不得她再顾虑什么了，她必须救下这只小狗。&lt;/p&gt;
&lt;p&gt;乔静仪无声地走出卧室，关上门，她就这样穿着拖鞋拎着伞走出了门，她知道在这样的大雨中，什么样的鞋袜都无法幸免。她没有叫醒吉林，因为她不知道怎么和吉林说——扪心自问她现在依然无法接受收养一只宠物，但她觉得她必须要去看看，至于之后，她还没想好。如果需要，她应该可以暂养这只小狗一段时间。&lt;/p&gt;
&lt;p&gt;身着睡衣拖鞋的女人走进雨中。&lt;/p&gt;
&lt;p&gt;至于这几天的计划，那倒是不重要了，毕竟，相比于一条生命，自己的洁癖和王志宏的邀请就可以放到一边了。甚至，有个想法冒出来，哪怕那只小狗已经…… 自己也不能放任那冰凉的身体在马路中心，她依然可以合理地推掉王志宏的那场派对…… 乔静仪赶紧甩掉了这个念头，她冒犯到了自己。&lt;/p&gt;
&lt;p&gt;踩着积水绕过一栋住宅楼就能看到路口了——不出意外的一篇空芜，丝毫没有婴儿车的踪影。交通灯闪烁着，一辆出租车冲过去。乔静仪就这样撑着小伞看了许久，并没有想象中的长舒一口气。她想到冰箱里的那些蛋糕材料，明天又要早起，而自己已经连续两天没有睡好觉了……&lt;/p&gt;
&lt;p&gt;回到公寓门厅时，乔静仪的睡裤已经湿了半截，但所幸头发还是干爽的。这时她感受到手腕处在震动，是手表，她看到吉林的头像。哦，她出门忘记带手机了，但吉林送她的这块手表倒是跟着她下了楼。&lt;/p&gt;
&lt;p&gt;乔静仪用手表接了吉林的电话，并表示自己已经在楼厅了。“下大暴雨了，我去看看那只小狗还在不在”，她说。&lt;/p&gt;
&lt;p&gt;推开家门时，家里各个房间的灯都开了，雪白的亮，吉林在门口候着，捏了一条毛巾。她知道，吉林醒来之后应该是把所有的房间都找了一通，确认她离开了家才给她打的电话，她庆幸自己带了手表。&lt;/p&gt;
&lt;p&gt;吉林用毛巾擦去她腿上的水，“你怎么出门也不和我说一声，手机也不带”，他说，“我还以为你去上厕所了，结果你半天没回来，才起来喊你。”&lt;/p&gt;
&lt;p&gt;“这不是带了手表了吗。”乔静仪说。&lt;/p&gt;
&lt;p&gt;想到吉林在家里慌乱找自己的场景，乔静仪觉得有些想笑。她顺从地坐下抬脚，让吉林擦干净雨水，虽然他拿了一条错误的毛巾。&lt;/p&gt;
&lt;p&gt;“没淋着吧？”&lt;/p&gt;
&lt;p&gt;“没有。”&lt;/p&gt;
&lt;p&gt;“小狗在吗？”&lt;/p&gt;
&lt;p&gt;“不在，应该是晚上被人领走了。”&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;“不好意思，”睡前，吉林在黑暗中说，“我没想到你是真的会想要领养那只小狗。”&lt;/p&gt;
&lt;p&gt;自己真的想要领养吗？乔静仪也不知道。“我看到外面下那么大雨就总会想到它，我怕它还在那里……” 她又想起那个空荡荡的路口，看到路口没有给她想象中的踏实。那个路口是有监控的，她似乎是可以确切地查看那婴儿车为何消失，是否是真的被善良的人领走…… 乔静仪摇头，自己似乎是有点魔怔了。身侧吉林的呼吸声逐渐平稳，明天还要早起。&lt;/p&gt;
&lt;p&gt;她拿起床头的手机看了一眼，有一个吉林的未接电话，是方才打的。闹钟显示会在三个半小时后响起——她需要想办法强迫自己入睡——窗外的雨声还在，乔静仪在焦躁中努力地让自己想象气泡仓内的闲适。&lt;/p&gt;
&lt;p&gt;乔静仪不知道自己最终花了多长时间入睡，她只记得空调的温度怎么调都不合适，并且吉林的睡姿有些挤压到她的空间，最终入睡前，似乎回到了中学，那是一个暴雨的日子。&lt;/p&gt;
&lt;p&gt;那应当是一个暴雨的日子，并不是某场具体的暴雨，但是新闻里早有播报台风，也不是某场具体的台风。乌云让下午如夜晚，于是玻璃上映照出教室内的模样，能看清白炽灯管的频闪和灯边的小飞虫，吊扇叶片的影子在天花板上转。不是某个具体的教室，但有同学有老师有习题有书桌上的刻痕，惊雷压过一切的时候，学生们转头看向窗外，阴影中树枝在乱舞。&lt;/p&gt;
&lt;p&gt;暴雨要来了。女生看到有人在交头接耳，她望向另一侧的窗，窗外是隔壁的教学楼，班级和班级矩阵般罗列，无数个教室，无数个讲台，座位上有学生讲台上有老师，每一个，活生生的，同一个视频的不同时间刻。&lt;/p&gt;
&lt;p&gt;一滴雨，然后是万千滴雨，窗边的学生把头侧到玻璃上张望，会放假吗？或许晚自习会被取消，学生们会在雨里奔跑，会被淋湿，会交谈或是叫喊。讲台上的人还在机械地说话，少有地没有在乎班级里的嘈杂，大雨平等地降临在每一个人头上。那一瞬间，女生从某种格式中脱离出来，用神灵的眼睛看向矩阵行列中的自己，没有喜怒，没有悲悯，不知手中纸笔为何物。那么，自己为什么会在这里，为什么会在现在？&lt;/p&gt;
&lt;p&gt;初中，还是高中？可能也不是一个具体的中学。乔静仪只知道，不知从何时起，自己有某种目光，仅偶尔会被暴雨唤出。她的灵魂飘出，窗口外是楼群，又是无数的视频的时间刻，暴雨让所有人停下手中的事情，又无法打断任何事情。&lt;/p&gt;
&lt;p&gt;不知从何时起？也许就是从她不再游玩潜水艇的游戏的时候开始的。&lt;/p&gt;
&lt;p&gt;她的灵魂飘过空荡荡的路口，没有喜怒，没有悲悯。&lt;/p&gt;
&lt;p&gt;于是乔静仪终于睡去，在雨水褪去、东方之既白之前。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;直到听到那震动耳膜的笑声时候，乔静仪才回过神来，眼前的大个子就是王志宏，他不知道何时开始蓄了胡子，乔静仪一霎那没有认出来。&lt;/p&gt;
&lt;p&gt;他们说了些寒暄的话，吉林和王志宏就开始从后备箱搬运蛋糕了。乔静仪有些恍惚，这个地方大约有一小时左右的车程，而她只觉得自己才刚刚出发。她一路上都在回忆自己上午莫名其妙的表现——她先是向吉林提起去社区或是警察局查监控，而后又连连摆手否定了自己。为了缓解窘迫，她格外积极的制作蛋糕，似乎要以此证明什么。&lt;/p&gt;
&lt;p&gt;缺少睡眠真的会让人变得可笑，乔静仪想。但生活中总是会有这种情况。&lt;/p&gt;
&lt;p&gt;“吃梨子吗？” 男人们搬运蛋糕的时候，杨可晃悠到乔静仪身边，她是王志宏的妻子，也许才结婚了并不久，一年？或是两年？乔静仪是记得参加了他们的婚礼的，她记得那天吉林和王志宏都喝了很多，她搀扶着吉林去洗手间呕吐。&lt;/p&gt;
&lt;p&gt;乔静仪认识王志宏的时间要更长。王志宏是吉林的师兄，那时候他刚毕业，而吉林还在实验室里。彼时乔静仪在准备本科毕业设计，去吉林的实验室找他时却总能碰到游手好闲的王志宏。&lt;/p&gt;
&lt;p&gt;乔静仪本能地不喜欢王志宏，大嗓门，和谁都自来熟，那时候他一直用”弟妹”称呼乔静仪。她曾多次被王志宏突然搭到肩膀上的手吓到，并且，这只粗糙的大手总是以恰到好处的无意触碰到一点她脖子或是锁骨裸露的皮肤。她和吉林说，吉林反而嫌她过分敏感，他说王志宏喜欢辣妹，你这种乖乖女不是他的菜。&lt;/p&gt;
&lt;p&gt;乔静仪并不知道王志宏具体在做什么，只觉得似乎是很杂，统称为生意。那一年，乔静仪的生日被吉林忘记，但她却收到了王志宏送来的一只口红，是个限定的款式，不太好买。&lt;/p&gt;
&lt;p&gt;再后来，便是王志宏开始疯狂地追求杨可，他甚至直接搬去了杨可的城市，最后在杨可的故乡举办的婚礼。杨可是个柔弱的小学语文老师，和辣妹沾不上一点边。&lt;/p&gt;
&lt;p&gt;“这人真是气死我了，”杨可用下巴指了一下王志宏的方向，“给人耍的团团转。”&lt;/p&gt;
&lt;p&gt;乔静仪望去，看到王志宏一边搬东西一边也似乎在对吉林抱怨着什么。&lt;/p&gt;
&lt;p&gt;杨可告诉乔静仪，他们被放鸽子了，王志宏宣称很熟的主办方取消了活动，但那时候王志宏已经订好场地，也预定好乔静仪的蛋糕了。她又道歉，说蛋糕钱他们自己会付的，只是这些蛋糕或许要浪费了，不好意思云云，之后又扩展到埋怨王志宏不稳定，不听话，行踪也不定。&lt;/p&gt;
&lt;p&gt;“你们家吉林真是好太多了，”杨可说，“踏实，而且顾家。”&lt;/p&gt;
&lt;p&gt;乔静仪一时间不知如何回答，是的，吉林是踏实，但不如说太过老实，因此窝囊，于是也显得顾家。乔静仪在朋友圈看到杨可夫妻寒暑节假总在世界各地旅游的时候，也会心里悄悄叹口气，王志宏赚的应当是多得多的，而且他还很有时间。而至于顾家嘛，他俩尚且还称不上家。&lt;/p&gt;
&lt;p&gt;不过这也就是早晚的事情了，乔静仪想，他们相处的时间已经足够久，也没有什么其他的阻碍。乔静仪也曾设想过离开这个有些无趣的男人，甚至差点付诸实践。她长得清秀，时而有算得上优秀的追求者，吉林也知道，但他从不主动问询。乔静仪本并不有意另寻新欢，但吉林的淡然太过恼人——他们都知道吉林并不是个自信的人——于是淡然就显得危险。&lt;/p&gt;
&lt;p&gt;乔静仪自己也很难说清楚所谓的”差点付诸实践”究竟是差了几点，当她真正开始思考离开吉林的时候，她又想起自己曾为何选择吉林。&lt;/p&gt;
&lt;p&gt;他们在学校的社团认识。昆虫社，乔静仪在本科时加入并成为这个社团最不活跃的那批人之一，她依然怕虫，但当时她觉得她应该加入一个什么社团。&lt;/p&gt;
&lt;p&gt;在一场野采的活动里，他们被暴雨围困在民宿，两个逃离房间的人在露台相遇，尴尬的寒暄。雨水在树林里产生持续而巨大的喧哗声，湿气扑在脸上，暴雨总能让乔静仪出神。吉林问乔静仪为什么来参加这个活动，“我小时候挺喜欢捉虫的，”乔静仪说，“后来就不敢碰了。”她其实有些忐忑明天的行程，如果不是下雨，其实他们今晚就会进入山林，尝试灯诱一些锹形虫。&lt;/p&gt;
&lt;p&gt;“有时候我会想如果雨持续的变大，”吉林说，“洪水会淹上来，就到这里，二楼的阳台上。”&lt;/p&gt;
&lt;p&gt;“于是我们明天就不用进山了。”乔静仪笑道。&lt;/p&gt;
&lt;p&gt;“于是我们也不用担心作业或是毕业，或是什么别的。”吉林说。&lt;/p&gt;
&lt;p&gt;是的，如果是这样的话，他们或许将划着小艇漂流，寻找食物或是避难所。于是救援都不再令人向往，因为洪水退去后，社会又会重新涌上来把他们淹没。&lt;/p&gt;
&lt;p&gt;暴雨还在继续，远处的山林模糊成一片。&lt;/p&gt;
&lt;p&gt;小学之后，吉林是唯一听乔静仪说过她曾幻想的气泡仓的人。&lt;/p&gt;
&lt;p&gt;“喏，拿着，”杨可把梨子塞到乔静仪的手里，她听到那边王志宏在说他带了几瓶好酒。&lt;/p&gt;
&lt;p&gt;“你现在不管他喝酒了？”乔静仪感到奇怪。她记得，在王志宏和杨可刚结婚的时候，她无比严苛地管束他的饮酒和吸烟。&lt;/p&gt;
&lt;p&gt;“喝死算了。”杨可啃了一口梨子。&lt;/p&gt;
&lt;p&gt;乔静仪看向男人们的方向，和当年似乎是大不一样了，蓄须的王志宏颇有些穿搭，显得松弛而挺拔，吉林却比当年在实验室的时候更加瘦小和佝偻。&lt;/p&gt;
&lt;p&gt;也许是要下雨，也许是天色本来就渐晚了，院子里迅速的暗下来。他们先各自回屋休息，王志宏说过一会儿出来一起吃饭。这家原本预计要办party的民宿并不小，但如今包场只有他们四人，于是分别住在顶楼风景最好的两间房。&lt;/p&gt;
&lt;p&gt;房内的气氛有点尴尬，“那些蛋糕我还在和王志宏商量怎么处理。”吉林摊手。&lt;/p&gt;
&lt;p&gt;乔静仪坐在贵妃榻上看着窗外，没有回复。阴云盖在山上，和昆虫社野采的那晚很像。&lt;/p&gt;
&lt;p&gt;“算了，既来之则安之吧，人少反正也清净。”吉林斟酌着说。&lt;/p&gt;
&lt;p&gt;“那些蛋糕真的做了很久！”乔静仪转过来看向吉林。&lt;/p&gt;
&lt;p&gt;“我和王志宏也在商量……”&lt;/p&gt;
&lt;p&gt;“早知道这样还不如不来，前天专门熬夜就要做这个蛋糕，”乔静仪打断他，“那只小狗还不知道被谁领走了。&lt;/p&gt;
&lt;p&gt;“来之前都不知道这事儿，也没办法，而且又不是不给钱。”&lt;/p&gt;
&lt;p&gt;房间安静下来，外面的风似乎是变大了，他们能听到树叶的沙沙声。&lt;/p&gt;
&lt;p&gt;“不知道啥时候吃饭，要不我们先下楼去吃点蛋糕。”吉林有些受不了沉默。&lt;/p&gt;
&lt;p&gt;“你吃吧，我不喜欢肉桂。”乔静仪说。&lt;/p&gt;
&lt;p&gt;吉林在门口顿了一下，“那我买肉桂回来的时候你也没说”，他等了两秒钟，见没有回复，带上门下楼了。&lt;/p&gt;
&lt;p&gt;乔静仪知道，他觉得她在耍脾气。&lt;/p&gt;
&lt;p&gt;外面的阴云聚拢起来。乔静仪宁愿现在来一场大暴雨，没法让party进行的那种雨，这样那些被浪费的蛋糕就是天意，而非人祸了。&lt;/p&gt;
&lt;p&gt;在昆虫社的那晚暴雨之后，第二日清晨她和吉林相约进山找些蝴蝶或是蜻蜓、豆娘——夜雨和晨露让飞虫们不得不歇息于叶片上。他们并未深入山林多远，运动鞋踩进潮湿的腐叶，横斜的枯枝让人无处攀附，最终他们在一块大石头处气喘吁吁，转身还能看到昨晚的住处。就先到这吧，他们靠在石头上休息，聊学校的八卦，吐槽辅导员，看到远处穿高筒靴背网兜的同学们深入密林。于是他们知道，彼此都是羸弱的孤独的城市人。&lt;/p&gt;
&lt;p&gt;手机扔在床上，但乔静仪感觉到手表的震动，是吉林的消息：“蛋糕真的很好吃，确定不来吃一口？” 他总是这样，乔静仪知道他希望缓和一下氛围，也知道他依然认为她爱吃肉桂。&lt;/p&gt;
&lt;p&gt;“不用了，我现在确实不饿”，她艰难地用手表输入，并不想再解释肉桂的因果了。其实这个手表她用得也很不顺畅，但吉林常用，所以她也坚持佩戴。&lt;/p&gt;
&lt;p&gt;前几个月在实验室和同学聊天的时候说起这手表，她才意识到，或许吉林一直自觉居功至伟——只要乔静仪愿意，随时可以看到他在哪里，做什么，是否在使用手机——其他女同学理应羡慕她有这样一位尽男德的伴侣，而她们在聊天中似乎也是这样表示的。&lt;/p&gt;
&lt;p&gt;于是这次之后，她才能从吉林的话里话外捕捉到些许邀功或是骄傲的端倪，例如在聊到晚上到家前他去做什么事情时，吉林并不会提前说明自己去哪了，因为乔静仪理应进行过监控和查询，或许，还应该对他加以表扬。&lt;/p&gt;
&lt;p&gt;不知情之间，可能还欠下了不少赞许。&lt;/p&gt;
&lt;p&gt;可乔静仪从没有看过吉林的状态，也不知道是否吉林那边也平等地拥有自己的状态。她拿到手表后觉得最有用且唯一有用的，就只是一个监控睡眠质量的功能，因为她睡眠一向不好。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;听到争吵声的时候，乔静仪盯着窗外出神，她想起了很多光怪陆离的场景。她在想如果当初在那犹豫的时候选择和吉林分开，现在会如何，或许还住在学校的宿舍吧，可能正在图书馆或是食堂；她又想起吉林带自己去漫展，他俩从众多发出咿咿呀呀声音的展台中穿过，左顾右盼又不知道该看什么；她还想起自己初中时候第一次对异性产生的日思夜想的感觉，他们最后一次联系应该是在大一，那人确实是个帅哥，但是天哪，已经五六年没有再想起这个人分毫了，为何他现在又跳出来……&lt;/p&gt;
&lt;p&gt;争吵声从隔壁传来，是杨可和王志宏。乔静仪反应过来的时候，争吵已经相当激烈了，她听到杨可尖锐的破音。乔静仪并不想知道他们在吵些什么，但她不自觉地解读这些句子，有提到蛋糕，有王志宏不靠谱的朋友，有提到钱。王志宏似乎是努力地控制了自己的嗓音，她仅能听到简短低沉的男声，但是听不清任何一个词语。而后她又听到杨可的声音，似乎在说他虚伪，说怎么出门在外面就哑巴了，在家不是嗓门挺大，说半年都分床睡的到外面来又要装模做样睡一张床……&lt;/p&gt;
&lt;p&gt;她又想起实验室的同学问自己和吉林是否吵架，她说不吵架，女生们叽叽喳喳的表示出羡慕以捧场，说乔静仪身在福中不知福。可……吉林确实算情绪很好的人了，人们都夸吉林好，但她并不知道自己是否真的算身在福中，吉林的一切都如此恰到好处而理所应当，以至于她没有办法否定，否定就显得不得体，不讲理。可就像在昆虫社那个农家的夜晚，她和吉林仍然愿意幻想一场洪水，从而短暂的逃离明天所有的理所应当。&lt;/p&gt;
&lt;p&gt;乔静仪听到敲门声时她才反应过来，隔壁的争吵不知道什么时候已经停下。&lt;/p&gt;
&lt;p&gt;是王志宏，他带着抱歉的尴尬笑脸进来，那副表情和他说蛋糕要浪费的时候一模一样。“实在是抱歉，让你们见笑了。”&lt;/p&gt;
&lt;p&gt;“欸，吉林呢？”环顾一圈之后他发现吉林不在。&lt;/p&gt;
&lt;p&gt;“他有点饿了，先下去吃点蛋糕。”&lt;/p&gt;
&lt;p&gt;“哦不好意思不好意思，农家菜已经点好了，一会儿就会送过来。”王志宏又露出那副尬笑。&lt;/p&gt;
&lt;p&gt;王志宏就这蛋糕的事又赔礼道歉了一次，下楼找吉林去了。&lt;/p&gt;
&lt;p&gt;晚饭的时候王志宏拎了两瓶红酒，杨可没有出来。“还在怄气呢”，王志宏说，“羡慕你俩哟。”&lt;/p&gt;
&lt;p&gt;“害，生活里谁不是磕磕绊绊的，乔静仪还一直羡慕你们婚后到处旅行呢。”吉林说，“当年你追杨可也是废了不少劲儿呢。”&lt;/p&gt;
&lt;p&gt;王志宏笑了笑，大家碰杯。&lt;/p&gt;
&lt;p&gt;“有时候自己都会怀疑自己，当初对杨可是那样梦寐以求，如今成为了她的丈夫，又对一切都不能确定了，”王志宏抿了一口酒，“甚至对当时所作的一切都有些羞于启齿。”&lt;/p&gt;
&lt;p&gt;“杨可答应我的时候我是那样开心，觉得一辈子都值了。把工作啥的全辞了，大包小包所有家当，分了两波寄到扬州去，觉得就奔向最想要的生活了。现在，一个丈夫，已经是我身份最基本的注解了，以后可能还会成为一个孩子的父亲。”&lt;/p&gt;
&lt;p&gt;“这难道不是挺好的？”吉林问。&lt;/p&gt;
&lt;p&gt;“是呀，其实也没什么不好的，只是觉得生活比一开始想象的还要更加狼藉。”王志宏说。&lt;/p&gt;
&lt;p&gt;乔静仪想到方才听到的争吵，如此令人感到熟悉，同学群里，朋友圈里，隔壁传来的声音里，就像电视剧，我爱你，我恨你，我想你，你无理取闹，我要杀了他，你走我就死给你看。乔静仪倒是觉得热热闹闹的，当然她也知道，因为这并不发生在她和吉林身上。&lt;/p&gt;
&lt;p&gt;王志宏有些喋喋不休，“等你真的到了那座城市之后，之前那些闪闪发光的理由褪去鎏金，不再成为你到来的理由，而你已经来到这里了，又不知道自己为什么在这里。”&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-5"&gt;6&lt;/h2&gt;
&lt;p&gt;晚饭并没有持续多久，王志宏急着回去看杨可了，乔静仪和吉林坐在一楼的厅里，侧面是个大冰箱，里面是蛋糕，很多蛋糕。&lt;/p&gt;
&lt;p&gt;“不生气了？”吉林问她。&lt;/p&gt;
&lt;p&gt;乔静仪点点头，她其实并不觉得自己算生过气。&lt;/p&gt;
&lt;p&gt;“感觉王志宏变了不少，”乔静仪说。这个汉子不再称她为弟妹，不再说些不得体的话，也没有再和她有任何肢体接触，他现在穿搭很讲究，而且似乎是健身了。&lt;/p&gt;
&lt;p&gt;“他不是一直都这样，”吉林说，“平时大咧咧的，偶尔又莫名其貌的好像有感触了。”&lt;/p&gt;
&lt;p&gt;外面已经彻底黑下来，看不清是否有云层了，风很大，但是没有雨声。&lt;/p&gt;
&lt;p&gt;吉林又从冰箱里把他下午没吃完的蛋糕拿出来，“你这次做的蛋糕真的很好吃。”乔静仪不确定他是否在尝试用这种方法哄自己，她越发不知道如何解释肉桂的事情了。&lt;/p&gt;
&lt;p&gt;于是乔静仪也拿了把叉子，小口的吃下一些。蛋糕的味道她是尝过的，和白天尝的时候一样，她算不得喜爱。两人就在沉默中各自看手机，小口的吃下蛋糕。&lt;/p&gt;
&lt;p&gt;吉林突然把手机放到乔静仪面前，是一段监控视频，那个乔静仪无比熟悉的路口，显示时间为下午六点半，是那个婴儿车被推走的监控。她看到一对年轻人过马路的时候看到了婴儿车，女生停下了脚步招呼男生，两人在婴儿车面前交流了一会儿，最后把婴儿车推走了。&lt;/p&gt;
&lt;p&gt;“你找到监控了？”乔静仪有些惊讶。“我就是随便说说……”&lt;/p&gt;
&lt;p&gt;“不是我找的，”吉林说，“和王志宏聊天时候我提了一嘴，他问了我一下路口位置，刚才他把这个发给我了。”&lt;/p&gt;
&lt;p&gt;“估计是觉得这次组织失误不好意思吧，”吉林接着说，“他人脉还真是挺厉害。”&lt;/p&gt;
&lt;p&gt;乔静仪一时间不知道说什么，蓄须的王志宏的面孔出现在她脑海里，竟然有点模糊。她发现自己依然没有如同预计中一样彻底松一口气，或许自己从一开始就没有那么在意这只小狗，乔静仪在心中暗叹。&lt;/p&gt;
&lt;p&gt;乔静仪只觉得自己脑子有点乱乱的，一只手机械的刷新着朋友圈，一只手把一些蛋糕送进嘴里。她发觉自己怎么有些吃不出肉桂味儿了，那股呛人的味道变成淡淡的烟熏味，甚至有些讨喜。&lt;/p&gt;
&lt;p&gt;被她右手持续刷新的朋友圈出现了新的内容——杨可，一秒之前，九宫格的图片，绿水青山，自己的自拍，还有她和王志宏在互相喂蛋糕的甜蜜照片，明显就是刚刚在房间里拍的，配文就是一个山的emoji和一个蛋糕的emoji。&lt;/p&gt;
&lt;p&gt;她把手机转向吉林，“看来他俩是和好了。”&lt;/p&gt;
&lt;p&gt;“床头吵架床尾和。”吉林说。&lt;/p&gt;
&lt;p&gt;“哦，说到床，”乔静仪突然想到，“他俩好像分床睡了。”&lt;/p&gt;
&lt;p&gt;“啊？”吉林的嘴长得老大。&lt;/p&gt;
&lt;p&gt;乔静仪扑哧一声笑出来。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/蛋糕的故事/</guid>
<pubDate>Tue, 14 Oct 2025 16:00:00 GMT</pubDate>
</item>
<item>
<title>电台的故事</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/电台的故事/</link>
<description> 






&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;我是在咖啡馆碰到刘晓东的。&lt;/p&gt;
&lt;p&gt;那天挺莫名其妙，才刚刚下午两点咖啡店就满课了。这家是个夫妻店，开在我租房的旧小区里，一般来说四点钟才会有些客流。我约刘柳两点见面，提前了三分钟到，进店前看到她的微信，她说，走错路了，可能迟点。我回复说，别着急，我也还没到。我问老板有两个人的座吗。店主说，没了，不行坐长桌吧。我说行，先来一杯埃塞俄比亚。另一杯呢，店主问。我说，人还没来，来了再说。他说，你前面还有四杯，要等会儿，行不。我说没事儿我不急。&lt;/p&gt;
&lt;p&gt;长桌在店中间的位置，配没有靠背的高脚凳，被许多矮座位和茶几围着，估摸着能坐六个人，每侧三个，但是现在每边儿只有两把椅子，剩下两把被别人拖走加座在其他位置。我爬上高脚凳，有种赤裸感，虽然并没有人看我。&lt;/p&gt;
&lt;p&gt;环境嘈嘈杂杂，我打开手机刷朋友圈。过了一会儿，店里来了一对母女，占去了长桌的两把椅子，留给刘柳的只剩我对面的最后一把椅子了。我给刘柳发微信，说，我到了，你还要多久。她说五分钟。我知道这一般意味着十五分钟左右。我继续刷朋友圈，看到有人发七夕快乐，才意识到店里人多或许是因为赶上了七夕节。于我而言这是一个毫无意义的节日，我只在念高中的时候谈过一个女友，后来上大学，她要去加拿大留学，我去不了，我俩就吹了。到现在我早已习惯单身的生活了，对于再找一个对象，我也不是有什么兴趣信心和资本。&lt;/p&gt;
&lt;p&gt;刘晓东就是在我刷微信的时候突然坐到我对面的。他个条很高，方脸，大夏天的还穿了件夹克。我本来想说这个位置有人了，但是因为不确定刘柳到达的时间，也或许是因为他壮硕的身材，我没拦他，只是盯着他看了一会儿。他坐下后左顾右盼了少许，眼睛瞄上我身前的咖啡。他说，诶呦，埃塞手冲，会喝。我抬头又看了他一眼，没搭话。他好像没意识到似的，继续说，这家店别的咖啡我不评价，但是埃塞没话说。语毕，长桌上沉默了一会儿，他似乎终于意识到我的态度，讪讪道，豆子好，没办法，随后咧嘴一乐，露出整齐的门牙，感觉还挺憨。&lt;/p&gt;
&lt;p&gt;你常来？我抬起眼皮问他，作为常客，我是知道他定是不常来的。我奇怪地和他搭上了话。起初我归因于他那抱歉的憨笑让我升起好感，但后来再想，那或许只是个自己给自己找的借口罢了——我和他搭上话更多是因为某种对刘柳的迟到的幼稚报复，且我不愿承认。&lt;/p&gt;
&lt;p&gt;没有，才第二次来，他说，上次来的时候喝了他们家四杯咖啡，就埃塞最对胃。四杯？对，四杯。我觉得这人挺搞笑，之前确实没见过这样喝咖啡的人。我说，哥们儿你注意胃。他说，没事儿，要坏早坏了，也不差这几杯咖啡。我低头给刘柳发微信，说现在没位子了，要不一会儿咱换个地儿聊。刘柳回复：马上到。我听到那哥们还在说，酒喝得多，他说。我回头朝店门口张望，外面并没有人影。我说，我喝不来白酒，平常喝可乐。他说，不是白酒，那玩意儿我是一点儿都喝不下去，我平常喝鸡尾酒比较多。&lt;/p&gt;
&lt;p&gt;咖啡店木制店门上的黄铜铃铛响了，刘柳到了。她穿丝质的衬衫，配长裤，还挎了个包。我对她耸肩，我说，没座了。她环顾了一下周围，从别人的桌拖了一把空闲的椅子，塞到我边上坐下。我约刘柳是聊电台的事儿的。&lt;/p&gt;
&lt;p&gt;我告诉刘柳，我从一个亲戚那里得知，在那个生养了我们的海边，有很多fm台几乎已经被时代所抛弃，没有节目可以播放了。衙门还在，但没什么人上班，不用很贵，我们可以并不麻烦地接手一个电台的黄金时段。我们可以以广告商或是传媒公司的形式，不需要政府编制，合法合规。&lt;/p&gt;
&lt;p&gt;刘柳问，所以你有谈好具体的频道吗？我说，有简单问过一个，FM101.2，没详细谈。最早叫岛屿资讯广播，后来05年改名为环岛路电台，沿用至今。刘柳问，现在还有节目在播吗？我说，几乎没了，基本上直接转播的中央台。刘柳说，行，待会儿咱合计一下。&lt;/p&gt;
&lt;p&gt;之后，我们又闲聊了一些别的，刘柳去卫生间。&lt;/p&gt;
&lt;p&gt;刘柳是我大学同学，大我一届。当时我学的机电，但从来没有好好上过课，基本靠补考混到毕业。课余里喜欢无线电，在学校里架天线到处搞无线电通讯。那时候没什么法律意识，胆子也大，知道学校那片有几个FM频道收不到市里的广播，常年空闲，就想自己弄校园广播。我攒了一段时间钱，在二手市场里收了个小功率电台，能发射137MH的频率，又花钱找人改了发射频率。民用电台不改装的话只能在业余频段，收音机收不到。一切安排妥当之后我小心翼翼地在宿舍做测试，还记得用mp3调到那个永远是噪声的FM107.1，听到自己的说话声传出来的时候，我几乎热泪盈眶。我给电台起名叫“远山电台”。我认为是学校南侧的那个小山包挡住了市广播台的电波，因此山阴侧的这篇小土地才能容我割据一个波段。我对那个小山包很是虔诚，像渔民对大海。&lt;/p&gt;
&lt;p&gt;有了电台之后，更需要的是广播的内容，可惜对此我并没有什么想法。所以，在校园电台创办的初期，我只是搜寻一些流行歌，还有下载一些相声，在晚饭的期间播放。一位舍友曾兴致勃勃地想办一个校园八卦的栏目，仅仅不到一周之后也就没了后续。远山电台这个名字，在私下里或许有偷偷摸摸于学生群体间有限地传播过。&lt;/p&gt;
&lt;p&gt;后来刘柳找到了我。当时我不认识她，但理所当然地认为她应该认识我，远山电台的创始人。直到很久以后我们才知道，我们竟然来自同一个滨海的小县城。她感兴趣一些音乐和文学，说可以给电台提供内容，她说我放的歌太土。我彼时正不知道播什么，就答应了。她当时放一些纯音乐，没什么调子的那种，还会读一些短诗，都是我没听过的，但也没觉写得好。每天下午放课后，我就会拖着装电台的箱子，拎一只蓄电池，爬到实验楼的天台上架设设备——那是我认为全校最适合建立电台的位置，可以让食堂和绝大多数宿舍楼都覆盖在高质量的通信范围里，而且有个破棚子可以遮雨，铁皮的棚子也给天线提供了良好的固定基座。刘柳一般会晚我五分钟到，拿着一些打印的或是手抄的稿子。&lt;/p&gt;
&lt;p&gt;我记得有一个冬天，天台上面风很大，特别冷，那天刘柳拿了好几张手抄的稿纸，里面是很多诗。她在大风里读，稿纸被风吹得凌乱，她需要一直整理，读得磕磕巴巴。不知道从什么时候开始，远山电台里刘柳所主导的内容越来越多，而我也没有和她抢占的想法。直到后来，我似乎已经只是一个管理和运送设备的人了。我甚至已经习惯对刘柳所广播的内容的不知情，且毫无好奇之心，她在麦克风前广播的时候，我就在天台上点一棵烟，靠在栏杆上看她念稿。我总感觉我脸上的绒毛能感觉到那个电台发出的波似的。&lt;/p&gt;
&lt;p&gt;我趴在天台的栏杆上往下看，很多人裹紧衣服在食堂和宿舍之间穿梭。&lt;/p&gt;
&lt;p&gt;一般来说电台会播四十五分钟，从六点开始。那天才刚到六点二十，我被风吹得哆嗦，有些受不了了。我离开栏杆边，往她广播的棚子走。棚子没有挡风的墙，铁皮顶哐哐直响。刘柳双手捏着稿纸，只能任由头发被风吹得散开，在脸上扫来扫去。我喊她，刘柳！她对我皱了一下眉头，没有停下念稿，飞舞的头发挡在中间。我知道她的意思是我的声音会被广播出去。我没管她，继续喊，我说，刘柳，别念了，太冷了，咱回去吧！她摇头，还在念。我说，这个麦克风没有防风罩，这么大的风根本收音不进去！但她就像没听到，连头也不抬了。我又呼喊了几声，她均不予理会。我受不了人装听不见，走到电台边上就要去关电源，刘柳立刻伸手阻挡。我把她的手甩开去够电源键，却突然看到几张翻飞的纸从我面前迅速远去——刘柳的手里还拿着稿子。我深知闯祸，立刻追着稿纸出去，一直追到天台的栏杆边，一张都没有追回来，只看着它们往北方飞去。&lt;/p&gt;
&lt;p&gt;再回头，刘柳已经往楼梯口走去了，我把电台关上，赶紧追去。刘柳只下了一层，在五楼的走廊里看着窗外。我说，对不起，我不是故意的。她说，没事儿。我说，你没生气吧。她说，没。我们就这样并排站在走廊的窗子前，看向广播稿远去的方向。刘柳也冻得不轻，在室内避风一阵儿后，耳朵立刻通红。我用手背碰了一下她的手背，冰凉。我说，你手还没暖起来？她说，风吹的，僵了，不然不至于捏不住稿纸，你碰一下就脱手了。我说，对不起，我当时真的是太冷了。她说，没事儿，不怪你。我说，要给你捂一下手吗？她说，不用了。她又问我，说，你刚才说的风大收不了音是真的还是假的？我说，不知道，有这种可能性。她说，这么冷，估计会听电台的人也不多吧，如果没人听的话，应该收音不收音也无所谓了。我说，不知道。&lt;/p&gt;
&lt;p&gt;冬天天黑的很早，实验楼晚上也没有人，走廊里已经是一片漆黑。我和刘柳站在窗前沉默了很久。&lt;/p&gt;
&lt;p&gt;我说，要不走吧，我上去收一下电台。她没应。我说，再不去吃饭食堂要关门了。她突然开口，语气很轻，说，那几张稿纸是飘到宿舍的方向去的吗？我说，是的，北边。她说，有没有可能，会捡起那几张纸读的人，比真正收听我们电台的人，还多？我说，怎么可能，这个电台我专门花钱改的，这是fm电台，和爱好者的波段不一样的，所有的收音机，mp3，还有智能手机都可以收到的。她说，这样啊。遂不响了。&lt;/p&gt;
&lt;p&gt;气氛让我有些难受。我不由分说拉起刘柳的手，依然冰凉。我用我的手捧住她的手，放到嘴边哈了一口气，然后搓起来。她一开始有些挣扎，但是我捏的很紧，她很快就顺从了。感到她的手有些暖了以后，我直接拉着她下楼了。走，吃饭去，我说。她说，电台还在上面。我说，你别管了，我吃完饭再来收。下到一楼楼梯口，她挣脱开我的手。食堂里我要了两碗大排面，我说，吃点热汤面，暖和。刘柳说，回去我把钱给你。我说，不用，今天把你写的稿子弄丢了，算我赔罪。吃完饭以后我送刘柳到女生宿舍楼门口，明天见，我说。她说明天见。&lt;/p&gt;
&lt;p&gt;现在想来或许也没什么不妥，但我当时确实无法放心把电台在外面放一夜。我于是又回到实验楼天台收拾电台。那天晚上收拾电台的时候，我一直在想刘柳的那个问题，真的有人听我们的电台广播吗？我其实一直都知道，答案应该是不够乐观的——那时候智能手机和网络已经相当普及了，在我迷上无线电之前身边有听fm广播习惯的人就已经寥寥无几了。可是，每当我站在实验楼天台俯瞰学校里的人来人往的时候，想到他们每个人，随时都可以用手边的设备接收到自己的广播的时候，还是控制不住的感到满足。&lt;/p&gt;
&lt;p&gt;第二天，我和刘柳如之前一样在实验楼天台见面，她手中依旧拿着足量的广播稿。那天微风拂面，温暖如春。我看了一眼她的稿子，有一篇短小说，是一个叫什么博尔赫斯的人写的，还有几篇诗，作者叫波拉尼奥，我均不熟悉。广播开始后我仍旧在远处的栏杆边点上烟，不过那天我还带了我的mp3，戴了一只耳朵的耳机听她播音。&lt;/p&gt;
&lt;p&gt;喂，喂，兄弟，刘柳起身后不久，对面那位大哥又开始对我挤眉弄眼。不好意思啊，他说，打扰你们小两口过七夕了，我这一开始也不知道啊。我说，朋友而已。他说，你约了人也不吱一声，你早说我就不坐这儿了。我听了没吭声，心里有点儿不乐意，他话说得好像我和刘柳还打搅他了一样。&lt;/p&gt;
&lt;p&gt;过了一会儿，他又开口，说，哥们儿你说你喝可乐来着，对吧。我看了他一眼，没搭话。他说，我跟你说，你要是平常喜欢喝碳酸的话，有些鸡尾酒你绝对喜欢，你真的可以尝试一下。我看刘柳回来了，说，不用了，我不喝鸡尾酒的。刘柳的兴致似乎比我高一些，她说，什么鸡尾酒？对面的人说，太多了，带气泡的长饮，肯定比可乐好喝的。&lt;/p&gt;
&lt;p&gt;在和那人聊天的过程中，刘柳对鸡尾酒展现出了很强的兴趣，我并不知道她是否曾经就感兴趣这个，只知道她以前喝葡萄酒。后来那人提议我们晚上一起吃顿便饭，然后去品尝一下鸡尾酒。我看刘柳似乎挺想去的，就答应了。&lt;/p&gt;
&lt;p&gt;从咖啡店走之前，那人说，还没介绍自己，我叫刘晓东。我说，叫我阿伟就好。刘柳说，刘柳。刘晓东说，柳柳？刘柳说，文刀刘。刘晓东说，哦，本家啊！声音很洪亮。&lt;/p&gt;
&lt;p&gt;之后，我们在吃饭时候逐渐熟悉。刘晓东知道了我和刘柳是大学同学以及同乡，我正想找一个电台做广播，而刘柳在一个社区委工作，体制内。我们也得知刘晓东是个留学生，还在念本科，现在是暑假期间。我和刘柳均惊讶于他的年轻。刘晓东说，哥，姐，叫我晓东就好了。刘柳说，你这孩子长得挺着急。刘晓东嘿嘿笑了两声。&lt;/p&gt;
&lt;p&gt;刘晓东带我们去了酒吧。酒吧不大，两层楼，第一层是吧台，第二层是卡座，我进门就往楼上走。刘晓东拉住我，他说，喝鸡尾酒是要坐吧台的。我虽然不懂，但还是觉得这种说法不攻自破——如果喝酒就要坐吧台的话，为什么酒吧还要摆上卡座。我们三个人到吧台前，我没有立刻着座，想等刘柳先选，刘晓东也没有选座位，而是跑去和酒保不知道在说些什么。刘柳显然没什么顾虑，坐在了靠中间的位置，我只好选了她边上的一侧坐下。刘晓东从酒保处回来后，很自然地坐在了刘柳的另一侧。于是我们分坐在刘柳的左右。刘晓东说，哥，帮你点了一杯菲仕类型的酒，你常喝碳酸的话会喜欢的。我听清了，但还是把头伸向他，故意说，什么？刘晓东提高嗓门说，给你点了杯酒！我对他俩笑了一下，我说，不好意思，隔得有点远。&lt;/p&gt;
&lt;p&gt;刘晓东和刘柳各自点了一杯不知道什么酒，应该是他们之前聊天时候就商量过的。调酒师在制作我的那杯酒的时候，曾拿起一个瓶子，应该是要加柠檬汁，被刘晓东制止了，他要求调酒师换成青柠檬汁。刘晓东说，他在纽约上大学，一入学就喜欢上了鸡尾酒，每次回国都要四处品鉴。正在做酒的调酒师突然说，纽约不是有很多很好的酒吧吗？刘晓东说，在美国，21周岁以下是不能喝酒的，所以我年年都盼着回来。我说，你不是说你胃都要喝坏了吗，那你在美国真就滴酒不沾？刘晓东说，可以在家自己弄，没人管，我自己在家里也调酒喝。&lt;/p&gt;
&lt;p&gt;刘柳和刘晓东喝得很快，我第一杯酒喝完的时候，他们第二杯都见底了。刘晓东去卫生间的时候，我问刘柳说有没有觉得这人挺装逼的。刘柳说，还好吧，留学生嘛。我一时难以听出褒贬。&lt;/p&gt;
&lt;p&gt;刘晓东让做的那杯酒确实还算对我胃口，喝完我也没有感觉到晕，就让调酒师再来一杯一样的，第二杯喝到一半的时候才终于感到一点点酒意。刘柳和刘晓东聊了一阵子，我听到刘柳说家里人在催她结婚，还说最好要本地人。我说，那你怎么打算的？刘柳说，还能怎么打算，拖呗，他们就是闲的，再拖几年他们就不管了。我说，还单着呢？刘柳说，对。刘晓东突然问我，他说，哥，你是马上就要开始办自己的电台了是吗？我说，还在筹备呢，没个准信儿。他说，一般这么说就是快成了，电台播什么内容啊？我看向刘柳，发现她也在看我。我说，应该会有些文学的内容，具体的栏目后面还要再和刘柳商量。刘晓东若有所思地点点头。我想了一下，又说，也不一定，只是以前办过文学的内容，以后还不知道呢。&lt;/p&gt;
&lt;p&gt;我不知道怎么回答刘晓东的这个问题，我自己也说不清为什么要办这个电台。&lt;/p&gt;
&lt;p&gt;在刘柳的广播稿被大风卷走的那晚之后，我就养成了在广播的时候听她广播的习惯。我没专门告诉她过，但我想她应该会发现，她至少一直有一名忠实的听众。不过，我一直都只戴一只耳机——如果我直接站在她边上听的话，广播就失去了意义，我也就不再是远山电台的听众；如果我只通过电台听的话，我害怕万一真的只有我一个人在听，那我的电台就会沦为一个哄女人的工具，这是更我无法接受的。不广播的时候，我也有去图书馆找过那些曾在刘柳广播稿中出现过的名字，看了一篇波拉尼奥的小说，讲的是一个男人和他的爸爸出去旅行，父子俩竟然各自去嫖娼。我不明白这小说到底要讲什么，只觉得奇怪。那天别的小说我更是看不下去，在图书馆乱翻书，找到一本王朔，竟然一口气看完了。&lt;/p&gt;
&lt;p&gt;我跟刘柳说，你那个什么波拉尼奥的，我看不明白，感觉不如王朔。刘柳说，我看过王朔，不喜欢。我说，你那些叽里呱啦的，我也不喜欢，我觉得咱们电台可以加点王朔。刘柳说，可以啊，那你来挑内容写串词。我说，那我写不来，你让我放点相声还成，文学作品我弄不来，而且我也不会读。刘柳说，不会写可以学啊。我说，这怎么学，我一个理工科的，上课又不教。刘柳说，上课教你也不会去，之后我播完的稿子都给你，你拿去读一读就会了。我说，真要学啊。&lt;/p&gt;
&lt;p&gt;那天天气不错，风和日丽，天上的白云是一绺一绺的样子，被一些飞机的航迹斜着叉过去。刘柳说，我拜托你个事儿。我有些摸不着头脑。她说，今年夏天我就要毕业了，到时候你能继续把电台办下去吗？我说，就这？刘柳说，就这。我说，好。第二天广播的时候，刘柳拿了一个厚厚的文件夹——里面是从她加入电台以来的每一期的广播稿，日期和节目期号都清清楚楚。她说，这是之前的广播稿，除了那天的，都在这里了，你拿去看吧。我感到压力有些大，我说，这么多我也看不完，还是放你那里吧。她说，反正迟早要给你，我还有几个月就毕业了。直到那时候我才反应过来，我的那句“好”，是如此沉甸甸。&lt;/p&gt;
&lt;p&gt;刘晓东说，文学好啊，现在人们生活都太浮躁了，需要你这样做文学内容的人。我摆手。刘晓东接着说，哥，真的很佩服你这种能豁出去做自己兴趣的人。我把剩下的一点菲仕酒喝完。豁出去了吗？或许是，也或许不是。电台是自己的兴趣吗？曾经是，但现在不一定是。我说，我和刘柳之前一起办过电台，我答应她要把电台办下去。刘晓东表示理解。刘柳盯着酒杯，不知道在想什么。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;再次驱车行使在环岛路上的时候，我才意识到上一次开车驶过这里竟然是我初次拿到驾照。路已经重新铺过，路边的建筑也有一部分变了，但弯曲的环岛路的弧线却总让我有一种微妙的熟悉感。&lt;/p&gt;
&lt;p&gt;环岛路实际上并不环岛，因为这座小县城并不是一个岛屿，而是一个半岛，这只是一条部分沿海的环城路。我在这个不大的半岛上一直生活到大学前，刘柳也是。&lt;/p&gt;
&lt;p&gt;抓着方向盘，看着陪伴了我十几年的天空和大海，我感到一种莫名的澎湃，很想对后座的刘柳说点什么，说点或许我们之间可以共享的记忆，比如曾经的高中，或是十年前的某场台风——不过当我侧头看到副驾驶上那位东张西望的留学生的时候，这种叙旧的冲动就自然消散了——我没有想到，刘晓东竟然真的和我们一起来到这个岛上了。&lt;/p&gt;
&lt;p&gt;两天前，在我们初识刘晓东的那个晚上，我和刘柳提到了此次来岛上考察的计划，刘晓东兴奋地说要加入我们。我察觉到他已经有些喝多，遂答应了，毕竟酒桌上的话鲜有作数过。我当时没察觉到的是，其实我也有些喝多了。&lt;/p&gt;
&lt;p&gt;那时候我除了最开始的两杯菲仕外，还喝了一杯刘晓东非要请我的不知道什么酒，他说我活成了他想要的样子，那杯酒是敬我的，也是敬以后的他自己。我说，这没必要，我现在连份正经工作都没有，这个电台未来也不会有盈利的可能性，烧的就是自己的存款，幸亏刘柳还会摊一部分电台的开销。刘晓东说，所以我才要敬你，因为你在做一件真正有意义的事情。我说，那是你没有穷过才会这么想。刘柳问他，说，那你想做什么？他说，做酒，鸡尾酒。我和刘柳对视一眼，我说，你似乎挺专业。于是留学生又开始说起他的鸡尾酒，我兴致寥寥，刘柳偶尔会接几句话。我问酒保，你们这行收入应该还行？酒保说，不太行，还累。&lt;/p&gt;
&lt;p&gt;车上的收音机在放一些漫长的广告，而且一条广告可以重复播放四五遍。刘柳问，哪个台？我说，101.2，环岛路电台。刘柳说，转播？我说，不知道。刘晓东问，投广告这么便宜了吗？我说，你觉得能有几个听到这个广告，这个电台的范围就这小半个县城。&lt;/p&gt;
&lt;p&gt;被环岛路所圈起的这个县城是个小县城，可以说，人口甚至没有发达地区的一些乡镇多。不过，这也正是我们能考虑设置电台的原因——作为一个县级单位，这个不大的半岛有自己的广播局，却没有足够的听众。&lt;/p&gt;
&lt;p&gt;重复播放的广告有些令人烦躁，我把车窗打开了一些，海风呼啦啦的吹进来。刘晓东说，还挺凉快，车里不用开空调了。我从反光镜看到后座上刘柳散开的头发在飞舞，她皱起眉头，我觉得这画面有些熟悉。我说，风太大了，关小点。刘柳说，不用。我看到她已经一只手把头发抓好，另一只手从口袋摸出皮筋。&lt;/p&gt;
&lt;p&gt;那天我们沿着海开了很远，一直开出了环岛路的范围，开到收音机的声音变得模糊，出现沙沙的底噪。第二天我们去和广播台的人谈电台的事儿，环岛路电台，每晚7到9点，使用一年，价格不贵，和最初了解到的差不多。我们也去看了广播室，设备挺齐全，除了老旧之外问题也不大。唯一和我们开始预期不同的是，没法签合同，我们仍然是某种意义上的黑户。那边说，不要紧的，有个退休老头儿，租了个台每天播他自己唱的声乐，播了两年了，啥事儿都没有，现在还在播。因为没什么选择，再加上是一个信得过的亲戚介绍的，我们最后还是“买”下了这部分广播权，但是把三个月的预付款砍没了，变成每月底付下个月租金。后来碰到个什么科长，问我们打算播的内容，我说，文学，大陆文学。&lt;/p&gt;
&lt;p&gt;事儿办得比想象的顺利，上午就结束了，广播站的人看起来尚靠谱，我们还是挺开心的，我中午请大家吃的土菜。饭桌上我和刘柳聊起之后打算播的内容，又回忆起许多曾经办校园电台的往事，我俩都显得挺激动。刘柳说，她之后她想播的内容会写好稿子发给我，我随便怎么安插在内容里都可以。我说，肯定的，你如果来的内容稳定，我这边就开一个专栏，毕竟电台你也摊钱了。饭后，刘晓东和我们说，他也想写点东西给我让我播，他也可以给电台摊费用。我问他要播什么，他说鸡尾酒，还有西餐。我本来想拒绝，就算答应可能也不会要他摊费用，但是刘柳先我一步替我答应了。后来事实证明，我从来没有收到过刘晓东发来的任何鸡尾酒或是西餐的广播内容，这位留学生几乎是白摊了一份费用。&lt;/p&gt;
&lt;p&gt;对于把远方寄来的广播内容整合进节目里，我不能说更熟练。我曾经就这样替刘柳播过一整年的电台。&lt;/p&gt;
&lt;p&gt;从真正开始逐渐接手我自己所创办的远山电台之后，我才发现在失去了可以糊弄时长的流行歌和相声之后，挑选和组织广播内容是一件令人筋疲力竭的事情。自从刘柳把她曾经的广播稿给我之后，每次播完之后她都会拉我一起讨论明天的播音内容，并且把当天的广播稿再次交给我。我们会下一层楼，在五楼的空教室做这些，之后她去吃饭，我上天台收拾东西。到后来我们也会提前带着便当过来，因为偶尔我们会讨论很久而错过食堂开门。这是压力很大的时刻，我听着她安排的明天的广播内容，她会询问我的意见，并没有什么审美能力和兴趣的我只能一味同意。后来，迫于压力，我白天会跑去图书馆物色广播内容，结果没来由地喜欢上了三毛，满脑子都是北非和撒哈拉沙漠。我和刘柳说，我要播撒哈拉的故事。她说，三毛？我说，不是《三毛历险记》里的三毛，是个女作家。她说，我知道。于是，之后的每一天我会准备几张广播稿，学着刘柳在页眉写上日期和广播期号，把广播内容放在中间。&lt;/p&gt;
&lt;p&gt;广播比我想象得更消耗故事，加之刘柳有意地逐渐减少她自己的内容，我不得不成日泡在图书馆里寻找适合拿来广播的作品。那段时间几个舍友都以为我魔怔了，问我是不是受了什么刺激。我说，我去图书馆不是学习，是在筹备远山电台的内容，他们方才恍然大悟。隔壁铺的哥们说，原来你的电台一直在办啊。我说，是的，不过之前的内容都不是我组织的，一年多了，你们都不知道？他说，我以为你就办了最开始几周。于是有人掏出手机开始找信号，找不到啊，他说。我说，现在不是电台广播的时段。他说，那啥时候广播？我说，晚饭档。隔壁铺开始嘲笑他，阿伟就在你对面，他怎么播？那人咕哝了一句，电台不都是24小时播的，你这算哪门子电台……&lt;/p&gt;
&lt;p&gt;再后来，刘柳毕业了。毕业典礼朋友们大多都去了，我没参加，不是不想，而是时间和电台广播的时段冲突了。那天是自从刘柳加入之后，我第一次独自站在天台上播音。那时候是夏天，天黑的晚。播到一半的时候，我听到操场的方向有欢呼声传来，我看过去，举办典礼的操场被楼房挡住了，但我看到有不少彩色的气球升起。我想，或许在操场的看台上会有几个落单的同学戴着耳机听电台，看着自己仰慕的人在典礼上被团团簇拥住，而即将离去。广播结束之后，操场那边传来的喧闹声也逐渐静下来，我习惯性地下楼，在五楼的教室里坐着，安排明天的广播。弄完之后我又多等了一会儿，因为不确定刘柳在毕业典礼之后会不会过来——我还没能见到她穿学士服的样子。那天刘柳没来，我想她应该是被朋友拉去吃饭了。&lt;/p&gt;
&lt;p&gt;大约刘柳离校后一周左右，我收到了她邮寄来的广播稿，稿件的格式和之前并无不同，只有页眉是空的，应该是留给我填写的意思。我给刘柳发消息，说，你怎么还搞邮寄，稿件直接网上传给我不就好了。她说，不行，那样的话网上会留有稿件的备份的。我说，有备份难道不是更好？她说，或许吧，但是我不喜欢这样的感觉，广播稿应该只有一份。我说，为什么，那丢了岂不是就没有了，就像那次碰丢的。她说，是啊，我们的广播搞里永远地少了一期的内容。我说，要是网上有备份就还能找回来。她说，错过了就应该是永远的错过了才对，否则就不是广播了。我感觉我有些懂她的意思了，我没回消息。我在想，我当初为什么会选择做FM广播而不是互联网播客呢？如果我仅仅是因为自己所发出的声音可以被任何人所收听而感到喜悦，我理应选择互联网：合法，没有技术难度，潜在听众更多，且我的所有往期内容可以随时被重复播放。为什么不呢？&lt;/p&gt;
&lt;p&gt;我好像隐隐能察觉到一些不同，但我分析不出来。我说，我大概懂了，我每期的广播稿也一直都是纸质的，没有备份。她回复了一个笑脸表情。&lt;/p&gt;
&lt;p&gt;午饭结束后，刘柳和留学生说要去海边转转，而我则打算收拾房间。既然电台的事务已经敲定下来了，我应当要回到环岛路居住了。我那从出生起一直住到中学毕业的老房子还在，只是略欠打扫。三年前，住在这个屋子里的爷爷去世了，应我伯伯要求，奶奶也搬去和伯伯一家住。&lt;/p&gt;
&lt;p&gt;重开水电，扫除杂陈，柜子里的被褥放出来晒晒仍然能用。收拾妥当后在楼下吃了便饭，我打电话给刘柳，问他们怎么安排。刘柳说，明天走。我说，不嫌弃的话，你们可以住我家，房间够，省了酒店钱。刘柳到家门口的时候拎了一大包烧烤，身后的刘晓东则搬了一整箱啤酒。刘柳说，晓东的意思。留学生说，晚上吃点喝点聊聊天儿。&lt;/p&gt;
&lt;p&gt;我们在客厅吃烧烤。刘晓东要看球，于是去捣鼓电视，老房子的电视在我高中的时候换过一次，但是或许是因为网络还没开通，刘晓东弄了半天也没弄好。留学生兴致很高，高谈阔论，我和刘柳几乎都没怎么插上嘴。大约一点多的时候，我们也都累了，于是洗漱睡觉。刘晓东睡书房的沙发床，刘柳睡主卧，我睡客卧——那从小就是我的房间。睡前我把客厅收拾好，烧烤后的竹签子容易扎破垃圾袋。我提前把垃圾放到门口，听到刘晓东响亮的鼾声。回屋时我路过刘柳睡的房间，门没有关紧，虚掩着。我握住门把手，轻轻推开房门，主卧的门口是卫生间，所以开门后并不能直接看到床铺。我看到床铺对面的墙壁上有微光闪烁，刘柳应该是还没睡，在玩手机。&lt;/p&gt;
&lt;p&gt;在我迈步往里走之前，突然想起了一些被忘掉的记忆，是初次碰到刘晓东那天。我想起，我在喝完那几杯酒之后，刘晓东又叫了别的酒，而我则逐渐话多起来，和他称兄道弟。后来我们结束了，站在酒吧门口准备各自打车回家，刘晓东叫的车先到了，剩下我和刘柳。我的手试探性的搂住她的肩，她一抖肩膀，甩开了。我们什么都没说。记忆到此就结束了，至于怎么回到家的，我更是一无所知。&lt;/p&gt;
&lt;p&gt;于是我退出了主卧的门口，轻轻把门掩上。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;那天，刘晓东给我发消息，说他搞到一瓶好酒，要请我喝。我说，我晚上广播结束后还有别的安排，估计不行。他回复说，好吧，那我明天去你那。我没有回复了。我没有骗刘晓东，晚上广播结束后我确实还有安排，我约了小高去吃烧烤，且不希望刘晓东掺乎进来。刘晓东其实是知道小高这个人的，看过照片，没有线下见过。&lt;/p&gt;
&lt;p&gt;对于能和刘晓东保持联系这么久，我其实一直都挺惊讶。在环岛路电台的事儿敲定下来之后，刘晓东并没有和计划的一样回到纽约去留学，而是就这样一直呆了下来，在省城和半岛之间跑来跑去的。后来问他，他说他退学不想念了。我说，那你现在在做什么，他说，多了去了，咖啡，酒，还有一些别的餐饮相关的。他又说他要开酒吧，说到时候等他酒吧开起来了，让我在电台里帮他宣传一下，比如在故事里提提名字之类的。那时候，环岛路电台已经平稳运行小半年了，广播的内容里也逐渐加入了一些原创内容，主要是一些影评和书评，刘柳则会寄送一些自己写的小故事来。我说，要在故事里加你的内容，那你应该去找刘柳，她同意就行，我这边主要是做些书评，加不了。刘晓东说，别嘛，很简单的，你就可以写，比如说，在xx酒吧喝酒的时候提到了xx书，然后继续你的内容就好了。我说，行吧。&lt;/p&gt;
&lt;p&gt;我开始写书评和影评是因为小高。播放环岛路电台的日子其实和曾经播放远山电台没什么区别，自从电台开始运营之后，我很快进入到那平稳且心无旁骛的状态。我依然会时不时收到刘柳的稿件，好像我们的电台从来不曾中断过。不过，现在的环岛路电台里已经不怎么会出现三毛和王朔了，可能是因为该播的已经播完了，也可能是因为些什么别的，这并不重要。大约播了两个月文选和故事之后，我认识了小高，是她主动联系我的。她说，她打了广播台的电话，从而要到了我预留的号码，然后再加的我的微信。我惊喜于环岛路电台竟然还有听众。我点开她的微信朋友圈，翻到一张自拍，主人公用一个笔记本挡住了嘴，露出清纯的眉眼。我把这张照片发给了刘柳和刘晓东，我说，环岛路不是没有听众的。&lt;/p&gt;
&lt;p&gt;刘晓东回了一些没有营养的废话，而刘柳则完全没有回我。我从刘晓东处得知，刘柳最近在家里的逼迫下开始频繁地相亲，平均每周都要见一个人。刘晓东说，柳姐真惨。我倒没这么觉得，我感觉，如果刘柳自己并不想相亲的话，她是不可能听从家里的指示的，她甚至不会敷衍。不过，相亲似乎并没有影响刘柳给电台的供稿，她提供的小故事里也不曾透露和相亲或是结婚相关的蛛丝马迹。除了稿件，我和刘柳鲜有联系，也就没有机会再详细询问她。可以说，如果不是刘晓东还在时不时拎着一些酒来找我，我甚至对刘柳的近况一无所知。也拜刘晓东所赐，我在这段时间里喝了不少洋酒，也对酒类有了些简单的了解。&lt;/p&gt;
&lt;p&gt;小高是在校大学生，也是生长于这座半岛的人，现在在县里实习。她说，她小时候家里就会播放这个电台，直到最近无意间发现了我的节目，立刻喜欢上了。从那之后，我时常会微信上找她讨论环岛路电台的广播内容。唯一的粉丝似乎比偶像更令人牵挂。有一次，在微信上和她聊到一本最近突然火起来的小说，我并不喜欢那个故事，絮絮叨叨的发了好几条六十秒的语音，对那个小说评头论足了一番。小高说，你为什么不把这些想法整理成书评呢？我说，也可以。于是第二天晚上的环岛路电台就多加了一个书评环节。播音结束前，我对着麦克风说，感谢给此节目提供思路的一位挚友，也感谢她给了这个电台继续播下去的动力，这期节目是我们一起创作的。&lt;/p&gt;
&lt;p&gt;那时候，我神叨叨地笃定小高会成为下一个刘柳——从听众，甚至是唯一的听众而逐渐成为电台的创作者的一员——我由衷地认为那期书评是我和小高共同完成的，哪怕她没有提供一个字。我主动约过小高吃饭或是喝咖啡，好几次，小高都以时间不方便为由拒绝了。我们在网上沟通仍然热络，书评逐渐成为了环岛路电台里重要的一部分，小高时不时还会点一些书或者电影让我写评论，大多是我没有看过的新书或是新电影，不过我会抽时间看完。&lt;/p&gt;
&lt;p&gt;这次吃烧烤其实是我第一次和小高见面，她穿一身随意的运动衫，素颜。我们本来约在一家还算干净的店里，结果我们到的时候发现已经没有座位了，于是只好在街边找了一家排挡，落座的时候我看到蟑螂从拐角窜过去。我说，不好意思，在这种地方，你要是觉得不行我们可以再换地方。小高说，没事儿，这片儿排挡我从小就吃。我说，那就好，本来之前想约咖啡馆的，但是你没空。小高说，你喜欢喝咖啡吗？我说，说实话，一般，但是环境好。小高说，我不爱喝，我喜欢喝可乐，或者啤酒。我说，你喝鸡尾酒吗？小高说，不喝。&lt;/p&gt;
&lt;p&gt;我们点了挺多海鲜，但我其实并不是很饿。小高也没怎么吃，几只烤生蚝堆在桌子上，我们俩只一直喝啤酒。我说，你应该有注意到，我在做书评或者影评的时候，里面经常会提到你的想法。她说，是的。我说，其实我觉得你的很多见解挺有趣的，你考不考虑自己也写一些呢？小高说，我感觉自己写不来。我说，我刚开始的时候也是这样。小高没说话，我接着说，如果我邀请你加入环岛路电台的话，你会考虑吗？小高拿筷子摆弄着生蚝。我说，没事儿，不是非要你答应，只是觉得碰到一个爱好相同又对广播又热情的朋友挺难得的。小高说，其实我可能很快就听不了环岛路电台了。我说，怎么了？她说，我的实习要结束了，可能下周就要回学校那边了，那边收不到电台。我一时语塞。我其实想说，反正我们有联系方式，那我之后的稿件可以发给你。但是我突然又想到了刘柳。&lt;/p&gt;
&lt;p&gt;“广播稿应该只有一份的。”&lt;/p&gt;
&lt;p&gt;“错过了就应该是永远的错过了才对，否则就不是广播了。”&lt;/p&gt;
&lt;p&gt;我也陷入了沉默。我已经有一段时间没有收到刘柳寄来的稿件了。我想，她现在应该在忙于相亲，或是已经进入稳定的恋爱了。在远山电台的最后一年里，虽然刘柳不在学校，但是我们几乎每一期的内容都有沟通，我不会把稿件发给她，但是会和她聊电台的内容，或是选稿时候的想法。而从环岛路电台建立之后，我们就再也没有这种沟通了，除了时而收到的稿件，刘柳几乎已经和电台完全无关。而我，我自己发现，把这种与人沟通稿件内容的热忱和习惯，统统倾泻到小高身上，因此我理所当然地认为她应该也会和刘柳一样加入电台。但小高并不是刘柳，而且，现在小高要走了。&lt;/p&gt;
&lt;p&gt;在得知小高的存在之前，我并不在乎环岛路电台是否真的有听众，只感觉自己是背负着曾经许给刘柳的承诺和无所溯源的热情，把环岛路电台看作是远山电台的重生。我当然知道平常住在市里的刘柳是无法收听广播内容的，可是她还在为电台供稿，为电台出资。我相信，当年在实验楼屋顶广播的时候，我那戴了一只耳朵的耳机应当给了刘柳一定的鼓舞，哪怕她知道我或许并没有在听。环岛路电台广播的时候，我也是这样感觉的，好像至少有一位无法言说的听众值得我为之广播一样。小高的出现让那位虚幻的听众被落实了。因此，当我得知小高要离开的时候，一种不知要为谁广播的惶恐摄住了我。&lt;/p&gt;
&lt;p&gt;小高还看着我，我知道她在期待什么。&lt;/p&gt;
&lt;p&gt;“所以说，你应该不会尝试做广播咯？”我问。&lt;/p&gt;
&lt;p&gt;“是的。”她说，“但我还希望能收听环岛路电台。”&lt;/p&gt;
&lt;p&gt;“那这样吧，你走了之后我会把广播稿发你的”&lt;/p&gt;
&lt;p&gt;“谢谢！”&lt;/p&gt;
&lt;p&gt;我看着她的笑脸，我相信，她永远也不会理解我要经历怎样的抉择才能做出这举手之劳。当然，我想，或许这所有的一切不过是我在无病呻吟罢了，小高是正常人，她又怎能理解。&lt;/p&gt;
&lt;p&gt;然后啊，日子就这样往下过下去，书，广播，咖啡，远方不定期的来信，还有环岛路的海风。我逐渐习惯了用电脑写稿和排版，习惯了播音前把稿件发给小高，习惯了偶尔晚上喝一点酒。不过，我还是用不惯电子稿，所以选择打印；我还是会把稿件整理成册，保留日期和期号；我还是会小心地收起这些往期的稿件，仿若它们是孤本。成册的打印纸里，刘柳寄来的手写稿显得有些格格不入，我总在想是否要单独存放，但是那样又会破坏之前按照日期的整理方式，遂放弃。&lt;/p&gt;
&lt;p&gt;直到有一天，家里的最后一点酒被喝完的时候，我才反应过来，刘晓东似乎已经消失许久了。从环岛路电台的建立开始，到记不起多久的过去，中间那记不起多久的时间里，刘晓东一直时不时会出现在这座半岛，然后拎着一些酒闯进我家。他带来酒的速度胜过我消耗酒的速度，以至于我从来没有想过这一刻的发生。我翻看了我和刘晓东的聊天记录，发现最后一次我们在微信上聊天也是三个月前了。我试探性地发了几条问候的消息，没有收到回复。我没敢贸然打电话给刘晓东，而是决定先问问刘柳。微信上刘柳告诉我，她也不是特别清楚刘晓东的情况。刘柳说她谈恋爱了，我说恭喜，我问她是相亲的吗，她说不是，她说她现在情况还挺复杂。我说，要不我们线下聊吧，我去省城。刘柳说，好，线上说不清。&lt;/p&gt;
&lt;p&gt;再次在咖啡馆见到刘柳的时候，我感到她身上有一种说不出的憔悴和亢奋，我想打趣说她甲亢，但是憋住了。我说，好久不见。刘柳笑说，好久不见。我说，你怎么突然就谈起恋爱了。刘柳又笑，说，不给？我说，挺好啊，啥时候结婚？刘柳说，没定呢，或许今年，或许明年。我吓了一跳，没料想到她真的就这样打算结婚了。我说，你们怎么认识的？刘柳说，周末出去玩遇到的，他是做街头艺演的，非常有趣。我又被吓一跳，虽然我不知道什么是街头艺演，但街头二字就足够让我觉得埋汰了。我没有隐藏我的惊讶，但刘柳似乎没有察觉到，应是在开口之前就对我的反应有所预料。她没有停，而是接着叙说了许多她这位街头男友的好处，以及他们俩相处如何和睦，我想她应该早已习惯了在说起这段恋情的时候别人投射来的目光，让她仿佛在讲一个反反复复讲过的故事，讲给自己而不是将给我，全程自说自话，我完全没有机会插一句嘴。&lt;/p&gt;
&lt;p&gt;根据刘柳的描述，此人应该是一位风趣的人，擅长让人欢笑和掏腰包的魔法，能应对各种各样的观众和城管。他博学，懂各式样的知识，踏各国度的土地；他浪漫，在田野画素描，在城墙弹吉他；他矫健，能耍火把，吞宝剑。他生于街头，且生活于街头，却远非街头所能束缚住。&lt;/p&gt;
&lt;p&gt;我问刘柳，那位街头青年年纪多大，刘柳说，比她大了不少，曾经在很多个国家演出和流浪。我想，我和刘柳也都不小了，那人应该也不是青年了，我的脑海里浮现出一位长发长胡子的街头中年。我问，那你现在是跟着他在走吗？刘柳说，是的，我从之前的工作辞职了。我问，那你的家里人呢？她说，当然是不干，我和他们已经很久没联系过了。我一时间有些语塞。刘柳突然说，我们下个月去印尼。我说，好啊，印尼挺好玩的。刘柳说，电台的钱，我可能这段时间没法摊给你了，到印尼之后，我也不知道还要待多久，不知道稿件还能否寄给你，之前的稿件，那些小故事，有不少都是我们一起创作的。我回想那些小说和小小说，平心而论我觉得写得并不差，有些甚至称得上精彩。我说，没事儿。我想起小高，我不知道该不该和现在的刘柳说小高的事儿。我问刘柳，你这个男朋友，这么有才的话，有没有尝试走演艺道路？刘柳说，那个圈子烂透了，他曾经参加过选秀，之后才发现全是黑幕。&lt;/p&gt;
&lt;p&gt;刘柳突然说，你是不是也觉得挺不靠谱的？我没说话。她说，没事儿，我自己也觉得挺不靠谱的，我到现在我都想不明白我究竟是为了什么。我说，其实没什么不靠谱的，我们都一样，你们去印尼，应该比我办电台好吧。刘柳说，对不起。我说，别这么说，我也不知道电台还能办下去多久，只能说能撑一天是一天吧。我又说，有困难别不好意思找我，也别不好意思回家。刘柳说，知道。&lt;/p&gt;
&lt;p&gt;我说，别聊这些不开心的了，你知道刘晓东怎么回事儿吗？刘柳说，不知道，但我知道在哪里能找到刘晓东。我说，哪里？她说，他家。我说，他家？你知道他家在哪？刘柳说，办电台之后刘晓东常来找我，喊我去过他家。我说，方便去吗？她说，反正我也要走了，我无所谓了。我说，那我也去吧，我也没什么好矜持的了。&lt;/p&gt;
&lt;p&gt;并不是如我想象的高档住宅，刘晓东的住处是一个长租公寓，幽暗的走廊两侧都是一扇扇同样的门，我惊讶于刘柳能熟练的在这个迷宫里找到那扇对的门。我们敲门，无人应门，于是我们去公寓前台要了便签和笔，贴在了刘晓东的门口，说阿伟和刘柳来过，刘柳下个月要离开了，希望他能联系我们。&lt;/p&gt;
&lt;p&gt;刘晓东在那之后的第三天晚上叩响了我的房门，拎了两瓶酒，就像中间没有断过一样。我赶紧迎他进门，我说，好久不见。他说，好久不见。我们坐在餐桌的两侧，两瓶棕色的烈酒摆在我们中间，一时间我们不知道从什么地方开始说话。我发现，这次刘晓东拿来的两瓶酒都是开过的，虽然基本上都还是满瓶，但是显然都被倒出来过少许，并且酒标被撕掉了。他曾经带来过的所有的酒都是未开瓶的新酒，酒标也都是完好的。刘晓东发现了我在看酒，他说，两瓶都是昨天开的，刘柳喝的。我说，刘柳？他说，对，那天你们去了我那之后，我拿了这两瓶酒先去了刘柳那，然后今天过来的。我没说话。&lt;/p&gt;
&lt;p&gt;刘晓东接着说，其实那天你们敲门的时候我在房间里，但是我不想应门，我不知道该怎么面对你们。他说，刘柳刚谈恋爱那会儿我还和她联系比较多，后面我认识了她男朋友，很有意思很有魅力一个人。我说，刘柳也给我说了她男朋友的事儿，但是我还没见过。刘晓东说，就像我最开始认识你们的时候说的那样，我很佩服你们。我摇头，说，我们没有什么特殊。刘晓东说，我应该和你们说过，我要去做酒，就像你做电台，刘柳和她男朋友要去印尼一样。我点头。他说，我甚至为此退学了。我点头。他说，前几个月，我有个朋友，之前在美国读书时候的朋友，在欧洲开了个酒吧，喊我去。我说，好事儿啊。刘晓东说，当然是啊，但是我没去。我说，你为什么没去？&lt;/p&gt;
&lt;p&gt;刘晓东没说话，他站起来去我厨房拿了两个闻香杯，打开两瓶酒，各倒了一点，这两个杯子也是他以前拿来我家的。他说，都尝尝。我分别拿起来，按照刘晓东之前说过的方式，闻了一闻，再各抿了小口。他说，喝的出来吧。我说，我不太确定，味道都又厚重又辛辣，只能喝出来左边是威士忌，右边可能是朗姆。刘晓东点点头，他说，刘柳也喝出来了，但是我喝不出来。我说，怎么会呢，我喝酒还是你教我的。他说，现在可以，但不是每次都可以。他指了指自己的舌头说，没有舌头了，当时就是这两瓶酒，我非说都是威士忌，我其实从最开始味觉就一直不行，只是到现在才意识到。刘晓东摇摇头接着说，所以我没去欧洲，我拒绝了那个朋友，我做不了这一行。&lt;/p&gt;
&lt;p&gt;我不知道该怎么回复刘晓东，我只是想到我自己，除了小高，又有几个人还在收听环岛路电台呢？我又想到刘柳和那位街头艺人，又能有几位观众会给这另类的乞讨者投出硬币呢？我们的味觉可能只更不灵敏，但我们就这样莫名其妙地选择了投身其中，只不过不是酒罢了。&lt;/p&gt;
&lt;p&gt;我问刘晓东，说，那你现在在做什么？他说，能做的都不想做。刘晓东拿起了那杯朗姆，把没喝完的一口喝完了，他说，我其实之前还写了一个稿子，讲鸡尾酒的，但是写完以后觉得不好，就没有给你了，你要不帮我播了吧，当作我退出这个行当的丧钟了。我说，行，你把稿子发我看一下。刘晓东当即把稿子发给我了，我粗略扫了一眼就感到写得确实不行，于是有些不情愿把这篇稿子加到之后的内容里，特别是考虑到小高还会收看这部分内容。我说，你要是没事儿就在这呆两天吧，明后天的节目已经排好了，给你加到大后天行不。他说，行。我想了想，决定在电台里加入这部分播放内容，而在发给小高的稿件中把这部分删除。&lt;/p&gt;
&lt;p&gt;两天里，我依然保持着之前的生活节奏，准备和整理广播稿，打印广播稿，把稿件发给小高，然后播音，再回家。刘晓东白天时而出去，他说去海边溜达，晚上我广播结束后回到家里，他会拉我少喝两口酒，然后聊聊当天广播的内容。这两天广播的是两部最新上映的电影的影评，刘晓东在听完影评后甚至还去补看了电影。&lt;/p&gt;
&lt;p&gt;第三天下午，随着家里的大门被叩响，刘晓东屁颠屁颠跑去开门，是刘柳。我说，你怎么来了。刘柳说，我怎么不能来？我说，晓东喊你来的？刘柳说，对。刘晓东说，喊刘柳姐过来最后听一集环岛路电台吧，她马上要去印尼了，之后谁也说不好，而这一期刚好也是我的第一期和最后一期。我点点头，说，挺好的。时隔多年，得知刘柳将要再次收听我所主持的电台，我感到一股压力，尤其是想到近期的节目内容已经大大地受到小高的影响，比如今天将要广播的书评的书就是小高点播的。&lt;/p&gt;
&lt;p&gt;广播尚算顺利，回家后发现茶几上堆满了啤酒和烧烤，刘柳和刘晓东坐在桌边笑盈盈看着我。刘柳说，下班啦。我笑说，对。刘柳说，广播风格成熟了很多嘛，都开始写书评了。我说，乱写的。刘晓东对我招手，说，快来吃吧，可能是咱们仨的最后一顿了。我问刘晓东，你过两天回家？刘晓东说，准备接着念书了，已经拿了香港一个学校的offer，重新读一个学位吧，然后老老实实上班了。我说，羡慕你们能留学的，不像我这种从土鳖学校出来的人，最后只能做电台。刘柳白了我一眼。我说，你不一样，你马上也要出国发展了，最后这里就我一个人留守咯。&lt;/p&gt;
&lt;p&gt;我们三个人聊到很晚，啤酒喝完之后又把刘晓东带来那两瓶烈酒掏出来喝，大家都有点喝多。刘柳说，上一次我们这样喝酒还是电台刚建立的那一天。我说，是啊，一转眼一年就过去了。桌子上堆着吃完的签子，还有生蚝的壳儿，刘晓东在刷手机，有一搭没一搭地说话。我说，等到环岛路电台的最后一期的时候，我会邀请你们来这里再聚一次，有头有尾。刘柳笑笑没说话。我说，你们俩到时候，最好给我抽时间回国，听最后一期电台，听到没有！&lt;/p&gt;
&lt;p&gt;刘晓东还在刷手机，逐渐皱起眉头。欸欸欸，他把手机摊到桌子上，说，阿伟这是你的账号吗？我低头看去，是一个不知道什么平台的账号发布的博客，标题正是我前两期节目所评论的电影。我继续往下翻，发现这个博客的内容就是影评，确切的说，是我的影评，是我自己一字一句写下的广播稿，一字不差。我心脏漏跳一拍。刘柳看我表情不对，问我，怎么了，这个电影你们看过？我猛然想到小高，她是唯一有我广播稿电子备份的人。我说，失陪一下，随后我快速走进书房打开电脑。&lt;/p&gt;
&lt;p&gt;电脑开机的空挡里，小高的脸一直在我眼前浮现。我想会不会是别的可能性，比如某别有用心之人录下了我电台的内容，又或者我的电脑中了什么病毒，导致我稿件被窃取，还可能是我或者小高的账号被盗取了。刘晓东和刘柳慢慢走到房间里，刘柳说，没事儿吧？我没应，只是在电脑里随便打开了上个月的一篇书评，复制了一段话，然后到搜索引擎里搜索。密密麻麻，前五条乃至十条内容都是一字不差的内容，来自于各种不同的平台和不同的账户。我呼吸有些急促，又搜索了两个月前的另一篇稿件，依然是看到我的字句充斥着网络。我深吸一口气，复制了更早期的，认识小高之前的一篇稿件到搜索框，敲下回车，当我看到展现在眼前的是大量零散的无关信息的时候，我突然感到一种释怀。&lt;/p&gt;
&lt;p&gt;我有些无力地向后靠去，刘晓东和刘柳站在我两侧，看着亮着荧光的显示器，什么都没有说。刘柳拍了拍我的肩膀，说，没事儿的。我说，等一下。我随便点开了一个发过我稿件内容的账号，浏览账户的发表内容。这个账号发的文章很是杂乱，除了我的广播内容之外还有大量别的文章。我上下翻页，发现这个账户已经注册很久了，而第一次出现我的稿件内容和小高离开环岛路的时间大致吻合。向上看最新的内容，我看到我几个小时前刚刚播完的书评已经出现了，点进去，看到发表时间是20:03，那时候我甚至还没有到家。&lt;/p&gt;
&lt;p&gt;看着屏幕上那无比熟悉的广播稿，我再次向后靠去，白底黑字在我眼前糊成一团。房间里三人沉默着。突然间，我猛地意识到，此刻展现在屏幕上的，今日的广播稿，里面缺了一段内容——缺了刘晓东的那篇写鸡尾酒的小短文！我赶紧起身把网页关闭，我说，没事儿了，别看了。我从未感到如此窘迫。深吸一口气，我起身，说，走吧，回去接着喝酒。&lt;/p&gt;
&lt;p&gt;从书房出去的时候，刘柳一直把一只手放在我背上做安抚状。我看着刘晓东的背影，他走得不急不缓，仿佛什么都没有发生，什么都不知道。我回忆，在我所有的存档备份里，应是仅有发给小高的那一份里面删去了刘晓东的短文。&lt;/p&gt;
&lt;p&gt;坐下，我们各自沉默着喝了点酒。我发消息给小高，说，我每次给你的广播稿你有给过别人吗？她相当快地回复，说她学校社团里有几个朋友也很感兴趣，所以她会跟社员们分享这些书评和影评。我打字：之前提到的那些电影和书，是你自己想看还是你朋友提的？想了一想，删了没发，改成：没事儿，随口一问。发出去之后觉得太严肃，又补了一个小猫表情包。&lt;/p&gt;
&lt;p&gt;把手机关机放进口袋，我问刘柳和刘晓东，说，你们想去广播站看看吗？&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;凌晨的半岛一片漆黑，放眼望去最亮的竟然是远处那条蜿蜒的环岛路。风特别大，刘柳一直用手抓头发，我和刘晓东靠在广播站天台的栏杆上。刘晓东掏了一支烟，但因为风大，一顿点火愣是没点着。我看着广播站顶端的那个天线，大学的时候，我做梦都不敢想，以后竟然有一天，携带者自己声音的磅礴的电波可以从这样的天线里发射出来，耳边刘晓东的劣质打火机咔哒咔哒的响。&lt;/p&gt;
&lt;p&gt;我说，如果没有网上那些东西，你们觉得能有多少人收听环岛路电台？刘晓东放弃了点烟，把打火机收回口袋。刘柳说，不会少的，电台覆盖面积大，路上出租车什么的会听到的。大风还在吹，一只塑料袋在天上飘。我说，如果我在这里把广播稿撒出去，有没有可能，捡到稿子读的人，会更多呢？&lt;/p&gt;
&lt;p&gt;刘晓东说，不管是什么原因造成的吧，至少现在有更多人通过互联网接收到了我们的内容啊。我余光看到刘柳在对刘晓东摇头。我说，晓东你应该不知道，曾经就是在这样的一个地方，我不小心打飞了刘柳的一期广播稿，当然也可能刘柳和你说过，这不重要，那几张广播稿就永远地遗失了，或许有人会捡起来读，或许没有。我说，有些东西，错过了就是错过了，也有些东西，应当只有一份。&lt;/p&gt;
&lt;p&gt;我问刘晓东，你啥时候去香港？他说，这个月月底。我又问刘柳，你是下个月去印尼？刘柳说，是的。我说，这一期就算作环岛路电台的最后一期了吧，刚好我们三个都在，有头有尾。他俩没说话。我说，应该把往期的广播稿从这儿撒出去。刘柳笑了，说，只可惜没带，我在书房看到你的稿子都打印出来了。我说，没必要啦，现在这些内容网上到处都是，扔一个副本有什么意义呢？&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;那天我毕业，拍完毕业照之后我就偷偷溜了，后续还有一些庆典什么的是没有必要出席的。等我穿着学士服拖着设备爬到实验楼天台的时候，我看到刘柳已经在那里等我了。我说，好久不见。她说，好久不见。我说，你来了多久了？她说，还好，不算太久。我说，最后一期了。刘柳说，是啊，最后一期了。我说，难以想象，一年这么快就过去了。&lt;/p&gt;
&lt;p&gt;和过去的一年一样，这一期全程由我广播，因为知道刘柳在边上听着，我略微感到一些压力。播完之后，我们站在天台上，听到操场方向传来的庆典的欢呼声。我把广播稿整理一下，夹到文件夹里。我今天带了过去所有的广播稿，整整一包，好几大册，除了之前被打飞的那一期之外每一期都在。我说，这些广播稿给你吧，你最早给我的那些也在里面。她说，你毕业之后做什么？我说，不知道，随便找个工作吧。她说，我们还会有机会做广播吗？我说，不知道。&lt;/p&gt;
&lt;p&gt;刘柳拿了一册广播稿翻起来，翻得很快。她说，你说，这几年来，究竟会有多少人听过我们的广播呢？我说，总归会有的吧。刘柳说，你觉得上次被你打飞的那几张广播稿，被人捡到了吗？我说，捡到肯定会被人捡到的，最不济也会被环卫捡到。她说，应该是没人读的吧。我说，不知道。&lt;/p&gt;
&lt;p&gt;那天还是有些风的，虽然没有碰丢稿子的那个冬夜风大。&lt;/p&gt;
&lt;p&gt;刘柳说，留这些稿子其实也没什么用吧。我说，算个念想吧。刘柳说，如果我们把这些稿子全都撒出去，肯定就足够吸引人来读了吧。我沉默了一会儿，说，你真的不打算留这些稿子了吗？刘柳说，你觉得我们之后还会做广播吗？我说，应该是不会了。她说，那留这些稿子也没什么意义了吧。我点头。我们走到栏杆边。&lt;/p&gt;
&lt;p&gt;刘柳打开手上那册稿子的活页，拿了一把往天上抛去，雪白的纸张呼啦啦散开，往下坠落。一册很快就抛完了，我们从栏杆往下看，能看到远近的道路上都有些许散落的稿子，不少学生捡起来看，然后抬头寻找这些纸张的来源。&lt;/p&gt;
&lt;p&gt;刘柳说，如果你之后有机会做电台，记得喊我。我说，好。刘柳说，我可以帮忙的。&lt;/p&gt;
&lt;p&gt;刘柳低头，从包里拿出第二册稿子开始往下撒，于是我也拿了一册开始抛洒。恰好此刻风力见长，我们越抛越快，几年的稿子很快就抛完了。我想，此刻应该是远山电台最辉煌的一刻。&lt;/p&gt;
&lt;p&gt;我们撑着栏杆，看着无数的稿件在天上翻飞，很多，很密。像什么呢？我也不知道像什么。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/电台的故事/</guid>
<pubDate>Thu, 14 Mar 2024 16:00:00 GMT</pubDate>
</item>
<item>
<title>去往漫游</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/去往漫游/</link>
<description> 






&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;那段时间里，有时候就是这样。&lt;/p&gt;
&lt;p&gt;我的关节在痛，我大晚上出门或许是想寻找医院。&lt;/p&gt;
&lt;p&gt;我摇摇晃晃在巷道里漂浮，感觉不到自己的双腿。晚穹是一个锅盖儿，把迎春街道这个大面团扣起来，下等人们的毫无建树的忙碌在里面发酵，释放出湿热湿热的空气裹挟着我。一股子热烈、羞耻、发霉的馊味儿。&lt;/p&gt;
&lt;p&gt;我本在北方苟营，被一位暂且可称之为江湖术士之人引路，入了程式之道。此后南下，来到迎春街落脚，躬耕于代码，还有计算和算计。我，一位包身工兼商贩，走访在网路世界的大街小巷里，兜售自己以及自己曾经的产出。有时候我宁愿自己是一名真正的小贩，这样我就可以在这座看不见海但是吹得到海风的城市里穿街走巷，每天早上在巷口和卖糖葫芦的打个招呼，中午蹲在石头桥边，成为一名吃盒饭的挑夫，有时候能拉到活计，要我到城北新区去，或是去隔壁城市的海边港口。傍晚时候，我在黄昏下抄近道回家，并不搭理那些站街的女人。亦或者，我甚至可以成为一名乞丐，中午仍然在石桥边，晚上在火车站，凌晨在长途汽车站。&lt;/p&gt;
&lt;p&gt;听闻中世纪有背着书籍的漫游者，叫做移动图书馆，他们一路向没有目的地的远方走去，在荒漠里挖泉眼，在寒夜里燃篝火，收集晨露，舔舐灯芯。他们把书籍和其内容物传播到沿途的村庄和城镇，在教堂里休整，主教会给他们泉水和面包。也有背着药箱的医者，苦行僧，旅行家。不能成为商人，使节，背负福音的传教士或是菲迪皮德斯——我们不能、不许、不敢知道自己的目的地，这是漫游者的禁忌，否则会遇到异象，妖灵，海市蜃楼和走不出去的怪圈，最后生生渴死或是累死，无一例外——这是漫游者的灵性的自我保护，对于一名漫游者而言，抵达目的地比死在路上可怖无数倍。漫游者应当永远只有歇脚的地方，而没有目的地。&lt;/p&gt;
&lt;p&gt;多么令人向往！我热爱漫游和太阳。&lt;/p&gt;
&lt;p&gt;然而，哪怕是迎春街这个发酵的大面团，我都鲜有逃离。阳光普照之时，我却需要阴暗的寓所帮我遮挡阳光，方能让屏幕的磷火般的光被我看清。当悲悯的黑夜的女神降临，向沉睡的人间世垂下她的双乳，我从这发面团的孔洞里探出头来，小心翼翼地啜饮暗夜的浑浊宁谧的乳汁，疗愈我因久坐而滋生出肿痛的关节。&lt;/p&gt;
&lt;p&gt;我多想把后背对着大海，一路往里面的里面走去，顺着海风的方向走得满面尘土！于是我在家里翻找我的藏书，有《零基础Python》，《Java从入门到精通》，以及《阿弥陀佛么么哒》。那么，我要踏上去传播程式之道的旅途吗？正如那个引我入门的江湖术士一样？产业变迁、技术迭代、AI驱动、大数据算法、百万年薪、出人头地 …… 我追随者那个人的步伐来到了南方，可是南方没有以莫大的关怀和宽容接纳我，南方摧毁了我的关节，并催我去漫游。哦，我还有一本《阿弥陀佛么么哒》，那我去传播心灵的救赎？可是，这本高深的书我自己尚未参悟透彻，我又何德何能成为一名传播者？&lt;/p&gt;
&lt;p&gt;原来，成为一名漫游者，或许你首先要精通地理，星象，宗教，占卜，历史，文学，其次再有你自己所独到的本领。可我只懂写代码，还写得不够好——我刚刚来到南方的时候还怀揣着梦想去应聘360的工程师（我曾无比崇拜那神奇的加速和杀毒功能），不出所料地铩羽而归，面试官告诉我，我仍然需要沉淀。这样一看，我又不知道对那位引我入行的导师该是愤怒还是感激了。京畿的大地，冗余的行政岗位，浑浑噩噩的年年如一日，没有碌碌，只有无为，可我活着，而且见得到太阳。这不好吗？我被人恶意注射了名为追求的毒药，毒发而南下，可我又两手空空，只揣着一大裤兜子的政治觉悟。&lt;/p&gt;
&lt;p&gt;别说漫游了，我连逃离都没有资格。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;除了向往，促使我拖着浮肿的疮痍之躯体在夜晚离开寓所的还有厌恶——我和一位歌唱家分享领地。此人比我更早来到迎春街，昼夜颠倒，是黑夜忠实的颂赞者。据说他糜烂的嗓子也曾在阳光下发出洪钟般的声响，不过本人是不怎么相信的。歌唱家占据里屋，整夜整夜地发出毒蛇吐信子般的阴郁调，犹如有一口气憋在胸口出不来，令听者浑身不自在，特别是他每每要唱到高潮的时候总会收住一口气，偏不让那最痛快的乐句顺畅的发出来。他那充满憋气感和压抑感的喉音极具感染力，让我听闻之后呼吸不顺，有一种想呐喊却发不出声音的憋闷。我害怕极了，于是每晚离去，出门寻找一些宁静。&lt;/p&gt;
&lt;p&gt;歌唱家说，他养成这样的唱歌习惯是忌惮邻居的投诉，虽然据我所知从未有过邻居投诉他。随着年岁渐高，这个瘦弱显老且一无所有的中年男人的自卑和自尊迅速膨胀，生长的速度远远胜过他嘴里的溃疡和头皮上的藓。他无比在意自己仅剩的臆想出来的得体，吃方便面都不发出声音，身上有汗的时候就不敢坐地铁，并且不愿和异性肢体接触。他常说，在和女人牵手之前，你就要做好把她娶回家的准备。他认为这会在女人心里塑造他负责任的光辉形象。他瞧不起乱牵手的男人。此君最害怕和女人做爱。&lt;/p&gt;
&lt;p&gt;当然，我觉得歌唱家的担心对于邻居而言肯定是好事，他如鲠在喉的唱腔只能穿透到我的房间，并不能突破墙壁的封锁。之前在我们的隔壁住着一对儿情侣，男方是一位归国留学生，据说是失眠症患者，如果他被打扰，我相信他会以很客气的形式来商榷。后来，留学生和他女友分手了，不知原因，只知道他依然深爱着他的女友。传闻说，分手前，他担心女友的下一任会虐待她，于是他就自己先虐待一遍女友。从那以后，留学生的失眠症似乎就痊愈了。歌唱家自此对他嗤之以鼻，再不会因为学历而尊敬他。我觉得这件事儿超出了我能理解和评价的能力范围，我时常在晚上出门的时候还会在楼道里碰到他，和他客气地打招呼并且偶尔请教一两个问题。凡事都有两面，书读多了肯定要牺牲一些什么。&lt;/p&gt;
&lt;p&gt;留学生姓余，学的设计，年纪和我相仿但好为人师，我喊他老余，因此君出手阔绰爱好请客，我有时也会喊他余总。我们彼此刚认识时，老余在附近一家工作室上班，听说正在准备一笔资金要把店铺盘下来，又或者打算自己在别处另开新店。那时候我对多金的余总敬重且谄媚，觉得他住到这破落的迎春街肯定是另有什么原因。&lt;/p&gt;
&lt;p&gt;我还没走到巷口，腰和胯骨就又痛起来。但我还能忍受，且我已经习惯了忍受，平日工作时，我的手腕和颈椎的痛感只会更强烈。那位引我入行的人曾提到过升降桌，工学椅，分体键盘云云，可暂时，我的苦痛并不值得用这么多金钱来救赎。&lt;/p&gt;
&lt;p&gt;我停下来歇息，看到有猫窜过去。迎春街里的野猫很多，老余曾说要开一个收养所或者宠物店之类的铺子，不为赚钱而是为了做善事，可惜最终也不了了之了。后来隔壁丽春街的几个学画画的女孩子在巷口搭了猫窝，也就是迎春街和丽春街交叉的地方，时常过来加水喂粮。刚刚窜过去的是一只黑猫，我不知道是什么品种，但它黄色的眸子总让我觉得深邃而可怖。我有时看到黑猫在女孩儿怀里撒娇，我担心这些可爱的姑娘会被摄去魂魄。&lt;/p&gt;
&lt;p&gt;从我腿侧窜过去的黑猫打破了我内心的脆弱的平和——我为了躲避歌唱家克制的声嘶力竭而出来，身体里翻涌着关节的痛楚、逃离和漫游的渴望、碌碌无为的愤怒、火热的欲望、难以启齿的羞愧、还有这南方湿漉漉的大雾里的困顿和迷惘。宁谧的夜就要兜不住了。我感觉某个地方，那只黑猫黄澄澄的眸子正盯着我。&lt;/p&gt;
&lt;p&gt;没来由的焦虑在夜的温床里疯狂繁殖，我想起无穷无尽的扯皮、拖延、讨价还价和坏账，是的，被大公司瓜分后剩下的需求都足够难缠且廉价，我是底栖的蟹，挥舞着细弱的螯肢和其他同类虾蟹抢夺海面上落下来的渣滓。那位引我入门的江湖之士似乎也来到了南方，然后音信全无。我怀念北方的曙光家苑还有当时和我一起散步的姑娘，姑娘遇上了阔佬，阔佬带着她去了深圳。曾在北方那条林荫路一起散步的几人就这样莫名其妙地颠沛至南方。他们至今还在我的好友列表里，可我不敢联系。我们甚至都不发朋友圈，抑或是屏蔽了对方，彼此不知近来是否安好。我似乎隐约听到歌唱家那少了一口气的憋闷腔调——它正逐渐成为我生命的背景音。我怒斥命运和自己。&lt;/p&gt;
&lt;p&gt;那段时间里，有时候就是会这样。走着走着，额头、手心、脚心都开始冒出汗来，脚下冰冰凉的袜子湿成一坨，像是踩了水坑。回过神来，手在衣服上擦一擦，才发现腋下也湿透了，又冷又热又恶心。然后呢，然后忘记了自己关节在痛，或许出门是想找个医院。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;老余请我喝茶，一家破烂的茶馆，我们的住所周围任何的店铺都是破烂的。&lt;/p&gt;
&lt;p&gt;整顿好，坐下，与其说是请喝茶，不如说老余是来给我介绍他的新女友的。我们隔着三碗油腻腻的茶汤和几块酥饼面面相觑。&lt;/p&gt;
&lt;p&gt;“介绍一下，这是我邻居，也是好兄弟，小郭。这位是我女友，叫她小张就好了。”&lt;/p&gt;
&lt;p&gt;就这样，我以相当礼貌的姿态认识了这位南方来的有点雀斑的高个子女孩儿。她年岁比我略小，神情里偶尔还能看出一些稚态，特别是四下张望的时候，脸上总呈现出一股学生的腼腆的好奇劲儿。我当时不免的总想起老余和他前女友之间那件关于虐待的传言，我相信我当时的眼神应该是不恰当的。我看小张，但是视线却没法聚焦在她身上，总看到老余前女友的幻影，又看到小张的脸重叠上淤血的样子。现在回想，本人的小眼睛里应是虚虚实实，怅然、怜悯、满不在乎而又警醒。后来有一次，小张说我那天初次和她见面时，我的眼神像猫，我猛然想起那只黑猫的黄色眸子，觉得它应该是也看出了我身上的灾厄的重叠影。&lt;/p&gt;
&lt;p&gt;小张在服装厂当技术员，住在厂里，所以没有搬过来和老余同居，对此我莫名感到松一口气，我觉得自己挺搞笑的，好像小张是我的什么人一样。&lt;/p&gt;
&lt;p&gt;小张下班后来找老余，很快就加入了那个喂猫的小女生们组成的团队，每次来的时候都会带一些吃的喝的，再打扫一下这些流浪猫的窝棚。弄完之后，小张和老余就会去吃吃饭，度一下二人世界。有时她下班早，来的时候还没到饭点，就会和老余在边上的茶馆坐一会儿，喝茶时候老余多会喊上我——本人每日在家工作且没什么朋友，算是召之即来的”茶友”。&lt;/p&gt;
&lt;p&gt;那天我被一个单子折磨了许久，预计又是只能赚到预付的定金了，失意的我在茶馆对着老余和小张大谈漫游者的故事。我说，哪天你们可能就突然看不到我了，我可能就往内地漫游去了，我不是在说笑，我当时也是这么离开北方的。我给他们讲漫游者的守则，漫游者不能有目的地，否则会有不幸的事情发生，这是漫游者灵性的自我保护。你知道”阈限空间”吗？小张突然问我。我当时并不知道什么是阈限空间。老余插嘴说，阈限空间就是走廊。小张说，阈限空间是一个状态转换的中间过程，是从A到B的中间范围，我刚刚说的漫游者的故事让她想到了阈限空间，漫游者们永远地把自己留在了一个中间态里，出发了，但永远没有到达。她说，阈限空间应当是让人感到怪诞和焦虑的，但是有时候也有神奇的令人着迷的魔力。&lt;/p&gt;
&lt;p&gt;后来我在一堆含糊其辞的资料中翻找，勉强抓住些阈限空间的把柄，陌生、凝望、连接、中间态、边缘性、重复、交界处，以及，猫。猫在众多的民俗文化中都被划归到神秘的领域里，有人说，猫凝望向人的时候的目光是停留在我们和它眼睛中间的某个地方的，它们看向的是我们的灵魂。在现代神秘学的解释里，猫凝望的是某个能触碰到我们的灵魂的通道，某种”阈限空间”。本人向来是对这类装神弄鬼之流不屑一顾的，可是那一霎那，那只黑猫的凝望和我初次见到小张时看到的伤痕累累的她再次出现在我眼前，我还是没来由地起了一身鸡皮疙瘩。&lt;/p&gt;
&lt;p&gt;“简单的问题被复杂化了。”我后来和小张说，“阈限空间不过是一个没有什么意义的，被强行提取出来的概念。”&lt;/p&gt;
&lt;p&gt;那天，我第一次走近那个猫窝，野猫们因为不熟悉我而有些骚乱，小张让我放慢步子。我从她那里接过猫粮，放入给野猫的食盆里，我看到那只黑猫轻巧地从高处飞跃而过，在树枝上审视地看着我。&lt;/p&gt;
&lt;p&gt;我示意小张抬头看，“我俩老朋友了”，我说，同时对它抛出谄媚的目光。&lt;/p&gt;
&lt;p&gt;“他叫卡卡西。”小张说。&lt;/p&gt;
&lt;p&gt;“卡卡西？”&lt;/p&gt;
&lt;p&gt;“《火影忍者》里的角色，璐璐她们给他起的，她们都觉得这只黑猫和卡卡西很像。”&lt;/p&gt;
&lt;p&gt;我不知道，我没有看过《火影忍者》。我也不知道谁是璐璐，但我猜是住在丽春街的那几位姑娘中的一个。&lt;/p&gt;
&lt;p&gt;“但我喜欢叫他达西先生。”小张接着说。&lt;/p&gt;
&lt;p&gt;“《傲慢与偏见》里的？”我问。&lt;/p&gt;
&lt;p&gt;“是的，我觉得他们的眼神很像。”&lt;/p&gt;
&lt;p&gt;“那它有找到它的伊丽莎白吗？”&lt;/p&gt;
&lt;p&gt;“那我就不知道了，达西先生平常难得露面。”&lt;/p&gt;
&lt;p&gt;我不懂什么卡卡西，但是我很喜欢达西先生这个称呼，至少这让我觉得它高冷的外表下还是有一些真诚和雅量的。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;我晚上依然出门透气，顺便打算去一下医院——我的关节愈发疼痛难忍，我觉得如果我再不考虑医治的话，在不算远的未来的某一天，我在敲代码的时候，它们将逐个崩溃，从指关节到手腕到腰椎，到我的工作，再到我现在的生活——我的人生我的职业我的未来，竟然就被我心安理得地摆放在这些即将报废的关节上。&lt;/p&gt;
&lt;p&gt;可是就算这样，我依然会走两步路就忘却去医院的初心，只记得自己出门是为了逃离我的歌唱家室友。因此，我竟然就这样一直都没有去看医生。更加讽刺的是，我们的黑夜的歌唱家同志，先我一步去看了医生——他有一天发现，自己竟然真的少了一口气一样，无论他怎么用力，每首歌的高峰他都要遗憾地低下去半个音，空留一肚子被激荡起的情绪唱不出来。医生说，这可能是一种精神性的疾患，歌唱家因为常年担心扰民而压制自己的唱腔，导致他已经习惯且内化了这种发音乃至呼吸方式。这使得他每每唱到乐句高潮时，他就会突然失去神经对肌肉的募集能力，让他的膈肌和胸廓发不了力，自然也就出不了声音。&lt;/p&gt;
&lt;p&gt;也不是什么大问题，医生最后做出总结。&lt;/p&gt;
&lt;p&gt;“就是有一种阈限空间的感觉。”我对小张说，“每个乐句每个乐句都是情感的积累，可偏偏在最后要抒发的时候，他卡在那里了，卡在了一个已经出发、即将到达，但是偏偏无法到达的位置。”&lt;/p&gt;
&lt;p&gt;“但我完全感觉不到这种唱法作为阈限空间的迷人之处，这种扭曲和怪诞感太让人难受了，”我继续说，“我完全难以想象什么样的人会觉得这种歌唱方式有魅力。”&lt;/p&gt;
&lt;p&gt;然而，事实证明我错了，而且错得很离谱。&lt;/p&gt;
&lt;p&gt;我相信我的歌唱家室友自己应该也从来没有想到过，他会在一夜之间成为乐坛红人。一切的起因是有一名颇具争议的文学评论家转发了我这位室友的一个粗糙的自拍演唱视频，并宣称这是他听过的最精妙、深奥、感性、有文学性的唱法。而大众对其的抨击反而引起了一些小众群体的狂欢，他们将欣赏这种快要咽气一样的唱法作为自己族类高艺术审美力的标签。他们甚至叛逆地将这种唱腔称为唁音唱法，取其要断气的感觉，以此和传统美声中的咽音相对应。&lt;/p&gt;
&lt;p&gt;“没经历过遗憾的人是不懂唁音的。”这句话让我重新思考了对我室友的歌唱的理解角度。我想起了当初在北方那位陪我散步的姑娘，她被阔佬带到南方，我对她应该是有些情愫的，可我从来没有说出来过，我自知我不如阔佬一根毫毛。张开口，千言万语卡在喉咙，可能最后出来的，就是这样一声”唁音”，一声对所有的消散在风中的美好可能性的唁言。&lt;/p&gt;
&lt;p&gt;我又重新回去看了那位评论家的原文，他说，这种唱腔是新文学的，反戏剧的，写实的，是一种从后现代主义角度出发对逐渐定式化的虚构作品的批判和超越。在积累了情绪和能量之后，并不是寻求一种古老的莎士比亚式的戏剧性抒发，而是就此成为一声喑哑的无能为力的叹息，把作品的内核在巨大的无力感的包裹下重新还给读者，以此来引起他们的再思考。同时，这也是一种带有讽刺和叛逆意味的写实，因为在现实生活中，大多数激烈的冲突都会在克制和无力感中走向一种妥协的结局，而唱出这种妥协和无力感反而比臆想酣畅的解决更具有反叛精神。&lt;/p&gt;
&lt;p&gt;无言以对，我想，生命本来就是在一个走不出的阈限空间里，亦或者说，走出一个又会立马走进下一个。我竟然就这样开始欣赏我的歌唱家舍友的这种憋闷的唱法了。我从来不知道自己竟然是个如此容易被改变的人，甚至我的审美也是如此浅薄，轻飘飘到别人吹一口气就把它吹跑了。&lt;/p&gt;
&lt;p&gt;我又听到了里屋传来的歌唱声，好像从来就不曾停下过。我细细地感受每一句发不出声音的声嘶力竭，还有那最高潮处打嗝一样低下去的半个音。啊，伟大的歌唱家！我仍然不愿承认是我这位中年的猥琐的舍友创造了这种唱腔。我觉得，这是某种造物主遗落在凡尘的物件，恰好被他拾取到了，而这物件，有着震慑人心沟通天地的伟力。&lt;/p&gt;
&lt;p&gt;我再次拿着歌唱家的”唁音”录像去找小张，我说我似乎能感觉到它其中暗含的那股失落感了。小张皱着眉头听了一遍，她说，听起来给人一种很懦弱的感觉。&lt;/p&gt;
&lt;p&gt;“很懦弱的感觉？”&lt;/p&gt;
&lt;p&gt;“是的，懦弱。”&lt;/p&gt;
&lt;p&gt;我觉得是小张太年轻了，她还没经历过什么遗憾。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;老余说，他物色了很久之后，终于定下来了他准备开的新店的位置，打算明年就开业。他说要去庙里拜佛，讨个好彩头，顺便游山玩水一下。&lt;/p&gt;
&lt;p&gt;山里下小雨，我们遂龟缩进了客房。在习惯了夜晚的哺育之后，白天和阳光向来都是只会给我带来焦虑，可是今天，在这个阴雨的庙宇里，青山，竹席，钟声，僧侣和硬布枕头，我难得再找回点安详。&lt;/p&gt;
&lt;p&gt;我把冲锋衣的帽子扣上，在寺庙里进行我的漫游。穿着灰布衣衫的僧侣匆匆走过。他们在忙什么？他们从哪里出发，要到达什么地方？我能看到老余的目的地，看到小张的目的地，看到我歌唱家舍友的目的地，可是我看不到这些僧人的。他们漫游者的匆匆的步伐是笃定的。我不是，我伤痛的关节让我步履虚浮，我是迷路者的步伐。我其实有想过回到北方去，回到那个被我抛弃的林荫路和曙光桥。可是命运啊，命运是个棘轮，只能往一侧开，不能倒退，想要回去，你就要一直往前去，兜上一整圈儿才回得去。我离北方，那才刚刚走过去两个齿儿。&lt;/p&gt;
&lt;p&gt;僧人闪过之后庙里就再也看不到别人了。老余在得知歌唱家出名之后展现过想要接触的意思，可是歌唱家拒绝了老余，因此这次只有我们三个来山里。而我的这位歌唱家舍友，在他逐渐接受了自己如梦幻般的飞升之后，也不再每日迟眉钝眼而苦大仇深了，而他那严苛的体面的要求也逐渐伴随着他的自卑一起消散——他甚至前段时间谈起了恋爱！于是，在迎春街那栋小破房子的二层，本人成为了仅存的一名光棍。&lt;/p&gt;
&lt;p&gt;老余和小张此刻应该还在房间里休息，他们就在我的隔壁。他们此刻在做什么呢？在这个苦闷的阴雨天和宁静的无聊的青山里。他们还能做什么呢？可是我，我为什么要在这雨天披上衣服离开房间？我的确是不相信这庙里的隔音的，但是我在回避什么，以及我为什么需要回避？我或许罹患了和歌唱家一样的神经或是精神的痼疾，害怕有不想听到的声音从侧面穿透过来，我的腿脚提前带着我溜走。&lt;/p&gt;
&lt;p&gt;雨滴打在青石板上。&lt;/p&gt;
&lt;p&gt;不对，我警醒起来。般若波罗蜜多，莫大的亵渎！我在想什么，这是在一座庙里，一个踏进门槛就只能吃斋的地方，我在对老余和小张揣测些什么！我不觉圆明，不畏法度，六根不净，六尘生心，满身尽是污垢和杂尘！我惶惶然在雨里呆立着。&lt;/p&gt;
&lt;p&gt;褴褛的夜色从山尖尖上流过来，配合着雨水把远山模糊成一片，我从迎春街的那口锅里爬出来，又掉进了另一口锅。前面的大殿里面亮着。&lt;/p&gt;
&lt;p&gt;我以我卑微的虔诚和忏悔的心态攀登大殿前的阶梯，把一条腿搬过木栏，贪婪地吸食普照的金光，烈焰里三重毂箍、五十辐条的梵轮骨碌碌转动不已。重心前移，正把我的后腿拔起，而翻过这矮墙一样的门槛，我看到莲花台前立着的一条瘦削的身影。巨灵神面前的一颗狗尾草。我不知道小张在祈祷些什么，或者也完全没有在祈祷。我只感觉看到小张之后，刚刚被我所唾弃、批判、贬为肮脏和龌龊的那些想法又再次咕噜咕噜地冒泡一样翻滚上来。我看到老余和小张在度过他们的夜晚，我看到他们曾经度过的每一个夜晚，我又看到我和她第一次见面的场景，她眼神里腼腆的好奇劲儿，淤青和泪痕印在她有可爱雀斑的孩子的脸上。老余真不是个东西！我突然开始羡慕我那个少了一口气的歌唱家室友，一个连唱歌都不敢把最后一个音节好好发出来的人，竟然就这样果敢地因为几句流言而拒绝和老余接触！他怎么敢的？&lt;/p&gt;
&lt;p&gt;污浊的念头燃起黑色的业火，在我患有窦性心律不齐的心脏里肆虐。我只知道自己很愤怒，可又不知道我在对谁愤怒。老余？我自己？我甚至想回去把那位走了狗屎运的残疾歌唱家揍一顿。我环顾四周，只有小张一个人在殿里，老余不在。不过，就算老余在，我也只会走过去拍拍他的肩膀，然后寒暄几句。我胸腔里的熊熊烈火，在我张口后，只会变成一堆无害的冷灰喷出来，成为一句”唁音”。可恶的流言！我害怕它是真的，也害怕它是假的。罢了，还是永远都是流言算了。&lt;/p&gt;
&lt;p&gt;小张纤弱的身影还坚忍地立在那。&lt;/p&gt;
&lt;p&gt;我想，我或许确实对小张有不一样的感觉，但我不知道是出于什么。&lt;/p&gt;
&lt;p&gt;那天晚上回去以后我难以入睡，但次日还要在天亮之前起床礼佛，这是老余安排好的。我打开包想拿电脑，排一下后面两天的工作，却突然发现包里有一袋牛肉干——上次回老家的时候亲戚给的，我并不爱吃，遂一直留在包里。&lt;/p&gt;
&lt;p&gt;我坐在竹席上看着牛肉干，背靠着隔断了我和小张的那堵墙，一股强烈到荒谬的饥饿感席卷了我。肉，伊甸园的苹果，潘多拉的魔盒，恶魔的果实！我用无可救药的吸毒者的手打开包装，抓起一大把拼命地往嘴里塞，往灵魂里塞，吃不出一点肉味。&lt;/p&gt;
&lt;p&gt;在这个只能吃斋的庙里，我背后的房间里的两人应当正在度过平和的一夜，毕竟第二天早上还要起来礼佛。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-5"&gt;6&lt;/h2&gt;
&lt;p&gt;我的关节在痛，我大晚上出门或许是想寻找医院。&lt;/p&gt;
&lt;p&gt;怯懦、焦虑、愤怒和羞耻在黑夜里冷凝。我的歌唱家舍友搬离了，这是在预料之内的——拥有了金钱，名气，女人之后，不再拥有一个体面而方便行苟且之事的住所简直天理难容。没了歌唱家的夜夜嚎鸣，我依然出门了，因为这并不是一个坏习惯，我必须尽快找到一个新室友来分摊房租，不容挑挑拣拣，所以我的下一任舍友或许将会是躁郁症、瘾君子、梦游者，或者什么更可怖的怪异之人，把我们的夜晚在地点上分开礼貌而妥当。&lt;/p&gt;
&lt;p&gt;迎春街这条窄巷是一个阈限空间，这个满地垃圾的破陋的通道从来不会成为任何人的目的地，中间态的压抑感在这个小空间里被体现得淋漓尽致。我的职业也是一个阈限空间，我招摇撞骗售卖自己的劳力，再无别的本领，饿不致死，熬不出头，逃不出去。&lt;/p&gt;
&lt;p&gt;街口有一些粗野的小孩儿路过，用刚扣完鼻屎的脏手把一些炮仗点燃塞进井盖儿里。我多么希望那些烈性的火种可以燃爆下水道的气体，而后摧毁整条巷子，顺便再让本人、老余、还有那几个肇事的小倒霉蛋儿一起给这个畸形的阈限空间陪葬，像挑破一个脓包一样，垃圾和脏水混杂着来自于我的一些残肢溅得到处都是。如果我的那颗恶心的长着血管瘤的脂肪肝还会被炸飞出去更远，并且好死不死涂抹在CBD的各种显眼而难清理的犄角旮旯上，让保洁跳着脚骂人的话，我一定会更有成就感。&lt;/p&gt;
&lt;p&gt;当然，最好，最好的情况还是不要把我炸死，我是有点想折磨一个无辜的保洁，但也没有那么想死。最好的情况是我被炸飞，并且有一只手彻底报废——这样一来，我不至于生活不能自理，但也再也没法敲代码了，于是我就被迫彻底离开这个职业，离开迎春街。然后，我就会有一个新的开始，比如说，我可以去漫游。哪怕重新开始后结局会更差，我至少逃离了这个我走不出的阈限空间。而且，这也不代表那位保洁就可以幸免遇难了，老余依然可以葬身在这场爆炸里，他的器官可以代替我的去完成给人惹麻烦的使命。我如果是灾难的幸存者，那么灾难就是我的拯救者。&lt;/p&gt;
&lt;p&gt;爆竹在井盖儿下面炸开，发出一声响屁似的声音，小屁孩们嬉笑着一哄而散。我略感不适地发现，哪怕我从来没有抱过希望，在看到这跟小爆竹连一丝火光都没有亮起的时候，我依然有一种失望感。&lt;/p&gt;
&lt;p&gt;我臆想，我或许完全可以自己设法解脱——我现在就能回到家里，拔出厨房的那把破菜刀，哐一声拆下我一根手指头。然后，我就可以撤下我的招室友的广告，打包上我不多的家当，再也不理会那些莫名其妙的廉价的单子，捏着那根手指头心安理得地离开，向西边走去。顺便，路过老余家门口的时候，我还可以把这跟吓人的手指头从他大铁门的猫眼里塞进去，最好能吓得他此后永远阳痿。可惜，臆想就是臆想，如果我有勇气拿起一把菜刀砍向自己，我相信我也应有足够的勇气直接放弃我现在的一切而离开，这不需要我牺牲任何一根手指头。是啊，手指头还是宝贵的，谁知道以后什么时候会要用到呢？&lt;/p&gt;
&lt;p&gt;我踩过那个埋葬了爆竹的井盖儿，在黑猫卡卡西的眸子里往前走。用手指头捏另一只手的手指头，还是疼，我想起来，我的关节在痛，我大晚上出门或许是想寻找医院。再不去医院，我的关节可能就要彻底报废了，不亚于被一把菜刀剁一顿。但是，但是，这难道不正是自己想要的吗？传闻，漫游者不能、不许、不敢知道自己的目的地，这是漫游者的禁忌，否则会遇到异象，妖灵，海市蜃楼和走不出去的怪圈，最后生生渴死或是累死，无一例外——这是漫游者的灵性的自我保护。我每每忘记去医院，是否也是我漫游者的灵性在呼唤我，一如得知目的地后在沙漠里迷失的他们，等着一场灾难来拯救自己。&lt;/p&gt;
&lt;p&gt;那么，我或许现在就可以回去了，继续我的工作和招揽室友，安心的等待我的关节彻底损毁的那天的到来，然后，抛弃我这些日子来的积累，彻底告别我迎春街和我的职业。等到那天，我还会告诉小张关于老余的传闻，也可能，那天我会向小张表白，反正我要离去了，我不在乎迎春街的任何事了。&lt;/p&gt;
&lt;p&gt;这是最有可能的未来吧。我相信没有什么人会真的掏出一把刀砍自己，或是明明毫无谋生技能却依然要抛弃现有的工作，或是突然向自己好哥们的女朋友表白——除非他是精神病。现实就是，我们会跟着自己的灵性走，走到一切都成熟了，该发生的就会自然而然发生，以一个低下去半个音的，带着些许无能为力的憋屈的，空留遗憾感在肚子里冒泡的，一个”唁音”，去接受水到渠成。&lt;/p&gt;
&lt;p&gt;我终于来到了医院门口。&lt;/p&gt;
&lt;p&gt;那天，我拿着歌唱家的”唁音”录像去找小张，我说我似乎能感觉到它其中暗含的那股失落感了。小张皱着眉头听了一遍，她说，听起来给人一种很懦弱的感觉。&lt;/p&gt;
&lt;p&gt;“很懦弱的感觉？”&lt;/p&gt;
&lt;p&gt;“是的，懦弱。”&lt;/p&gt;
&lt;p&gt;我看着医院的大门，里面亮堂堂的。&lt;/p&gt;
&lt;p&gt;我知道，我现在正在歌唱的那口气还憋在那，发不出来，吞不下去。我也知道，憋久了，就会和我那位歌唱家前室友一样，永远地少了那口气，再也吐不出来。&lt;/p&gt;
&lt;p&gt;但我不知道，我是否真的会就这样什么都不做，然后等着自己进入下一阶段，有时候，什么都不做也是一种做。也许，也许就在明天，我就会踏进医院，也许就在下一刻，我就会踏进医院，然后让医生治好我所有的妄想症——毕竟我就站在医院的门口。&lt;/p&gt;
&lt;p&gt;谁知道呢。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="后记" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="后记"&gt;后记&lt;/h2&gt;
&lt;p&gt;和往常不一样，这篇故事写完以后并没有一种终于完成了一件事儿的解脱感。我向来不太喜欢写什么后记，但这篇文章写得我很憋屈，觉得有很多想说的，但是说不出来，像是唱歌时候有一口气憋在胸腔里，所以在这胡言乱语一会儿。&lt;/p&gt;
&lt;p&gt;《去往漫游》是《程式禅》的后传，也算是《往曼德拉去》的某种翻版，所以我在标题里保留了一些相似性。但这篇其实算不上个故事，没什么剧情，满篇都在自言自语。提笔之前，本来还想好好写这篇文章，动笔后却忍不住在里面堆满了自己的吐槽，于是就摆烂了。&lt;/p&gt;
&lt;p&gt;这两个月遇到了一些”新的”事情，权且当作一些碎碎念吧。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/去往漫游/</guid>
<pubDate>Thu, 14 Dec 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>日出</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/日出/</link>
<description> 






&lt;p&gt;抿了一口桌上的鸡尾酒，季风没有说话，转头看向落地窗的外面。隔壁的摩天楼里一家餐厅亮着，亮到能看清食客把刀叉拿起又放下。下面是澎湃的路网，黑夜里，不知道多少传说正在城市的各个角落上演。身后的吧台映在玻璃上，调酒师正在摇一杯 Daiquiri 。这家位于云顶的酒吧据说拥有全亚洲顶尖的马天尼，但是季风没有喝出什么特别的地方，橄榄倒是挺好吃。&lt;/p&gt;
&lt;p&gt;季风很少来这座城市，此次也并不会停留几天，谁知竟机缘巧合遇上了一位旧人——他在一场小而高规格的会议上见到了她，他是贵宾，她是接待。些许事物在季风的心里翻滚，他不知道她是否认出了他。会议结束后，季风寻东家要了她的联系方式，那个中年男人带着笑意多看了他一眼。女人的微信昵称叫小如——并不是季风一直认为的小茹——他至今不知道她的真名。&lt;/p&gt;
&lt;p&gt;她像一把打开尘封的储物室的钥匙，无数杂乱的过往让季风在酒店里竟有些坐立难安，于是他提前半个小时就去往了约定的地点。&lt;/p&gt;
&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;季风几乎快忘了，自己竟曾是一位道路青年，或者道路少年，浪荡而游手好闲。他甚至当过一段时间的”二哥”，一人之下六人之上，在那片不大的街区也算是半个风云人物。大哥是一个叫常胖子的留级生，他有两个刚从牢里出来的哥哥，连班主任都揍过。季风谁都不怕唯独怕常胖子。在年轻人的群落里，这个八人的小帮派就是这片地头的天。&lt;/p&gt;
&lt;p&gt;他们的八人帮里有唯一的一位女生，柳情，来自两条街之外的十七中，是老大常胖子的女朋友——常胖子虽然胖，却长了一张帅脸，深得女混混们青睐。老大和柳情出去二人世界的时候，剩下的六位只能自个儿捋炮的单身汉就会聚在一起，说老大，说柳情，说打胎，说十七中的女的都是臭婊子，说三级片，说女优，说城西的洗脚店…… 季风听得很是心痒痒，但是从来都鼓不起足够的勇气，去十七中勾搭臭婊子或是去城西踏进洗脚店。彼时季风做的，就是泡网吧，骑摩托，跟着老大出去干仗，对路过的穿白裙子的女同学吹口哨，如果常胖子的哥哥们在的话，兴许还会去偏僻的烧烤摊吃一顿免费的烧烤。&lt;/p&gt;
&lt;p&gt;季风是在一间台球室碰到小茹的，那次他们八人相约去市里一家新开的台球馆打球。而小茹就在相邻的台，和一个流里流气的姑娘一同，那姑娘穿的背心，袒露着一整条大花臂。那个时候纹身尚且少见，覅说花臂了。季风的目光跟随着纹身从手腕到小臂再到大臂，花臂末端几片板雾从女孩锁骨下方身进衣服里，常胖子舔了舔嘴唇。&lt;/p&gt;
&lt;p&gt;那段时间曾莫名其妙地掀起过一波台球的热潮，致使无数的青年涌进地下的台球室，季风在那个时候发现了自己竟有些台球天赋。他最初和兄弟们一起打台球，很快就成为了这群人里水平最高的一位，于是后来季风就和别的人打球，和台球室老板打球，再去别的台球室打球，心想着能碰到高手切磋一下。&lt;/p&gt;
&lt;p&gt;“喂，你台球打得很好嘛，你叫什么名字？”女孩往这一桌看过来。&lt;/p&gt;
&lt;p&gt;“季风，你呢？”&lt;/p&gt;
&lt;p&gt;“小如。”&lt;/p&gt;
&lt;p&gt;“来一局？”&lt;/p&gt;
&lt;p&gt;“来。”&lt;/p&gt;
&lt;p&gt;季风也看出来了，那位花臂女孩台球打得很是一般，但是这位小茹出杆之间一直带着一股轻巧的自信——这是他在很多高手以及自己身上也能感觉到的气息。&lt;/p&gt;
&lt;p&gt;于是季风走向女孩儿们的球桌，常胖子和那些歪瓜裂枣的兄弟们也乌泱泱围过来。没有比球，季风让女孩儿开球。聚光灯下，季风和女孩儿各拿着一只球杆，球桌一米外的黑暗里窸窸窣窣，站着一圈交头接耳的人。&lt;/p&gt;
&lt;p&gt;女孩儿大力推杆，台球在清脆的响声里飞花般散开，也打散了众人聚在一点的目光。常胖子抬头看见花臂在不远处，中间隔了两个人。他把那两人扒拉开，游向花臂。女孩儿的这一次开球稳健而美观，季风瞄向她短袖口处的胳膊，这只纤细雪白的臂膊竟能爆发出如此力量，或许她是借了身体的力送出的这一杆。第二杆后，常胖子挤成功到了花臂的侧后方，身体和她身体紧贴着，嘴里嘟囔的话被淹没在人群的底噪里。花臂顺势向后靠着常胖子的肚皮。有了常胖子做对比，季风这才发现，花臂姑娘的身材竟意外的娇小——那条花臂的气场让季风误以为她很高——从季风的角度看去，常胖子像是抱着一只花哨的瓷瓶子。女孩儿不断击球，她控球很是老到，但季风看着球桌侧面的位置极其刁钻的11号球，知道不出两杆，球权会回到自己手上。常胖子的手扶上了花臂抱起的胳膊，花臂回过头，仰头和常胖子说了什么话，鼻息喷在常胖子脸上，常胖子咧嘴笑了起来。&lt;/p&gt;
&lt;p&gt;季风收回目光，连续出杆，小茹饶有兴致地看看季风，再看看常胖子。此刻围过来的其他几位，也不言语了，杂乱而猥琐的目光在季风、常胖子和花臂、小茹、柳情之间来回游移。季风用力击出一颗球。柳情看了一会儿球，走向常胖子，两位看戏的知趣地闪开。她走到常胖子侧边，低声说了什么，常胖子的脸垮下来，松开了花臂。&lt;/p&gt;
&lt;p&gt;季风瞄准下一颗球。&lt;/p&gt;
&lt;p&gt;花臂和柳情对视了一会儿，侧身要离开常胖子身边，她竟然比柳情还矮不少。就在这时，常胖子突然高抬起他的胖手，出乎所有人预料的，一巴掌狠狠落在花臂的屁股上。像是肉贩子把带皮的猪肉摔在案板上，或是少林寺武僧的长棍击打在青石上，响彻台球室的一声清脆。正在击球的季风手一抖，杆从母球边上蹭过去，母球滴溜溜地旋转，撞在了另一颗球上。季风抬头看向常胖子的方向，没有听到声音，但是他看清了常胖子的嘴型。常胖子对柳情说，给你脸了。&lt;/p&gt;
&lt;p&gt;季风朝小茹撇了撇嘴，示意她打球。&lt;/p&gt;
&lt;p&gt;花臂不急不缓地按照原本的路线往台球桌的另一侧走，仿佛刚才那一巴掌不是扇在她的屁股上那样。&lt;/p&gt;
&lt;p&gt;但，常胖子的那一巴掌似乎把什么别的东西打碎了。众人滚烫的目光聚拢在花臂紧绷的牛仔裤上，跟着花臂的节奏，看着她愤怒的小翘臀一步一抖，又一步，又一抖。&lt;/p&gt;
&lt;p&gt;花臂刚走到球桌的另一侧，站得最近的那位混混就不由分说地一把将花臂揽进怀里。揽住花臂的混混外号内裤，在季风他们的小圈子里属于最怕事儿的那类，也是往洗脚店跑得最勤的一位。&lt;/p&gt;
&lt;p&gt;常胖子的眼神跟着花臂追到了内裤脸上，内裤瞄了一眼常胖子，立刻把头撇向台球桌，于是常胖子的目光又回到花臂脸上。花臂伸手圈住内裤的脖子，狠狠吻了上去。她的舌头撬开内裤的牙齿，吻出撩人心魄的滋滋声，同时一直盯着常胖子。&lt;/p&gt;
&lt;p&gt;啪，一声清脆的击球声，黑球准确无误地落入了季风身前的洞。&lt;/p&gt;
&lt;p&gt;“你输了，弟弟。”小茹拿着球杆，微微仰头看向季风。&lt;/p&gt;
&lt;p&gt;此刻，冷着脸的常胖子正搂着冷着脸的柳情站在一侧，内裤和花臂又在季风身后亲得啧啧有声，剩下的四位盯着小茹不知道在想什么。这球没法打了。&lt;/p&gt;
&lt;p&gt;季风虽然有点不服气，但身后二人发出的靡靡之音也让他有些难耐。他摇摇头，表示认输。&lt;/p&gt;
&lt;p&gt;“你怎么知道我比你小？”&lt;/p&gt;
&lt;p&gt;“输了就是弟弟。”&lt;/p&gt;
&lt;p&gt;季风耸肩。&lt;/p&gt;
&lt;p&gt;常胖子拉着柳情悄然离去了，但剩下的四个人依然围在台球桌边一动不动。&lt;/p&gt;
&lt;p&gt;“还打吗，弟弟？”小茹问。&lt;/p&gt;
&lt;p&gt;季风用下巴指向身后拥吻的二人。“这怎么打？”&lt;/p&gt;
&lt;p&gt;“我来和你打。”围在周边的四个人其中一人，刘五，拿着球杆就往小茹那侧走去。季风这才注意到他们或许早已等候多时。&lt;/p&gt;
&lt;p&gt;小茹拿起母球准备开始。&lt;/p&gt;
&lt;p&gt;“等一下！”季风喊住那人，“老五你滚，我来打。”&lt;/p&gt;
&lt;p&gt;小茹扑哧一声笑出来。&lt;/p&gt;
&lt;p&gt;刘五悻悻地放下球杆，内裤搂着花臂也从另一个方向离开了，剩下三人自讨没趣也很快离开了这个球台。季风心想，自己好歹也是个二哥。&lt;/p&gt;
&lt;p&gt;于是季风和小茹打第二场，这场季风开球。平心而论，季风觉得小茹虽然厉害，但是应该还是打不过自己，可是他如今脑里一片混乱，他总看到台球像一群花蝴蝶一样飞散开，常胖子拍在花臂屁股上那一巴掌的声音还在他耳边不断回旋，一巴掌又一巴掌，似乎从来没停下来。他又想到后面那些巴掌应该是内裤拍的才对，或者他现在正在不知道什么地方拍，他一巴掌一巴掌拍在花臂的屁股上，直到他的手印盖过常胖子的手印…… 老大，柳情，打胎，十七中的女的都是臭婊子，三级片，女优，城西的洗脚店，现在又多了一个花臂，内裤是老嫖客了，哦，可怜的季风，你自己现在还是个童子鸡…… 这个小茹又是什么来头，和花臂一起来玩的，台球打得还这么好…… 真神奇啊，常胖子竟然会怕柳情，她不怕挨揍吗，难道她还有老大的什么把柄？十七中的人果然没这么简单…….&lt;/p&gt;
&lt;p&gt;没了那些乱七八糟的人，在这只有两人的球桌上，季风反而比刚才更难集中注意。他又输了。&lt;/p&gt;
&lt;p&gt;小茹问，还打吗。&lt;/p&gt;
&lt;p&gt;是啊，还打吗？季风早已无心打球。可是，如果不打球的话还能做什么呢？回家？他又想到老大和内裤，花臂屁股上的那一声脆响还在余音绕梁，就这样回家他着实有点不甘心。可是，总不能就这样一直在台球室里耗着。&lt;/p&gt;
&lt;p&gt;季风问，你朋友他们去哪了？小茹说，应该问你的朋友吧。季风有些答不上来，想了半晌，那我们换个地方玩？他放下球杆往小茹那边走去。小如说，你跳舞吗？跳舞？对，迪斯科。会，但跳得不好。那走吧。走。&lt;/p&gt;
&lt;p&gt;季风和小茹肩并着肩离开了台球室。在拐到台球室门口的时候，季风看到了包括刘五在内的四个人，他们竟然还没有走。小茹没发现他们，季风侧头看到他们四个正对着自己挤眉弄眼。季风想，如果刚才自己选择了回家，小茹现在就应该和他们四个其中的一位去舞厅了。于是，在踏出舞厅大门的时候，他一把将小茹揽到身边，小茹丝毫没有抗拒。季风的手扶在小茹远侧的肩膀上，他知道，此刻应该有四道灼热的目光聚焦在他的身上，和不久前落在常胖子以及内裤身上的如出一辙。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;原来她叫小如，而不是小茹，季风想，她实际上的年龄或许比自己小。他用力地咀嚼着一颗去核的橄榄。&lt;/p&gt;
&lt;p&gt;调酒师还在喀喀喀地摇酒，冰块在雪克壶里碰撞的声音从来都只会让季风感到惬意，可今天他却有些嫌吵。看了一眼表，还有20分钟，季风有些后悔为什么当初心血来潮找东家要了她的联系方式，因为某种对缘分的感叹？因为她是他的第一夜？或许是单纯下午脑子抽抽了。那些纷乱的往事让季风有些烦躁，他现在丝毫没有在会议上认出她的时候被勾起的那些兴致了——他宁愿点个陪酒女。&lt;/p&gt;
&lt;p&gt;平心而论，小如之于季风，现在，似乎和陪酒女也并无什么区别——她也是季风自己给自己”点”的，还有20分钟，她将佩戴着一副面具似的全妆，在手提包里装上口红，纸巾和避孕套，然后款款而来，完成一项交易。可是没来由的压力就是在季风脑袋里窜。因为她是自己十年前的一夜情对象？可这个身份并没有什么意义，季风自己也清楚无论是当时还是现在，她于他而言与一支烟并无区别，想抽是因为馋，换成别的烟也可以。哦，季风已经戒烟八年了，他早已经不会馋烟了。&lt;/p&gt;
&lt;p&gt;不知道她还在不在抽烟，季风想。在十年前的那个晚上，他们在那个失火了一样的舞厅里一根接一根地抽，一晚上没停。不止他们，所有人都在一根接一根地抽烟。他们跳累了就到角落里，抱在一起接吻，季风竭力想让自己显得娴熟一些，但是显然并不成功。小茹狡黠地看向季风，两只手开始不老实地乱摸，真是弟弟啊， 她说。季风一边尴尬地无言以对，一边急迫得恨不得就地就把她办了，他想这人果然也是个臭婊子。&lt;/p&gt;
&lt;p&gt;季风是在离开他的那个街区的那一刻戒烟的。他的升学并不顺利，于是还算有钱的父亲决定送他出国，他就这样戒烟了。国外不是买不到烟，虽然当时的季风还没成年，但是想抽的话依然有渠道。用他父亲的话说，就是季风在出国之后突然开窍了。到底开没开窍，季风也不知道，反正他那时候和一群留学生一起，听闻了徐志摩的故事，只觉得天高海阔，誓要和自己此前的混混生涯一刀两断，之后当一名文青。他觉得自己应该是一名天生的诗人或是作家——他的名字像一个笔名一样优雅。&lt;/p&gt;
&lt;p&gt;季风到底没能成为一名诗人，或是作家，但当他和一个同样有着诗意的名字的女青年驱车至乡间，在夕阳下吟诗，然后在车后座做爱的时候，他只感叹这才是真正的活着，小茹，还有小茹之后的许许多多的别人，以及破烂的舞厅里的夜晚，都显得那么荒唐肮脏且愚昧，但这不重要，原始人永远不知道什么是生活，他想。哪怕，这位有着诗意名字的女青年并不好看，或者说远远不如小茹。哪怕，后来季风得知，这位女青年的裤裆或许比小茹还要烂得多。季风不觉得她是臭婊子，他甚至自己都没有意识到，自从离开他的街区以后，他再也没有遇到过新的臭婊子了——他认识的那些臭婊子都成为了老臭婊子，婊子这个词也成为了一个地区、一段回忆、一种生活的象征，和那个十来岁的烟雾缭绕的街区紧紧地绑定在了一起。&lt;/p&gt;
&lt;p&gt;季风再次看表。还有十分钟，那位身份复杂的老臭婊子将从远古走来，在这家豪华的云顶餐吧里坐到自己的对面。不，不能再称之为老臭婊子了，如今的季风也不再是那个肤浅却装模做样的留学生了。他回国后踏入商场——彼时他那花钱买到的海归文凭仍收追捧，之后短短数年几度沉浮，季风快速地成熟起来。小如，花臂，柳情，常胖子还有当初的自己，都不过是街头的孩子罢了，特殊的环境造就了他们的不检点，他不再会把婊子这个词用到当初的旧人身上，季风也要和过去的自己和解。那老这个字眼呢？或许更不应该。自己尚且未至而立之年，小如应该更年轻一点。季风他们这一代人，16岁时就成为了青年，而后青年这个词所划定的年龄范围也随着他们长大而长大，他们当了十几年的青年，现在仍然是青年。&lt;/p&gt;
&lt;p&gt;是啊，肯定要是青年才行啊，季风想起自己的前女友——罗佳——在他念书的最后一段时间里，那位有诗意名字的女青年之后，带给他一段稳定的恋爱关系的那位——她现在还在念书，博士还没毕业，如果现在就把她称为中年的话，季风想，是不是有些太残忍了。不像季风还有许许多多其他的留学生，罗佳朴素而单纯，虽然脑筋有点慢但是很好学，经常去图书馆一坐一通宵。她帮季风结束了他伪文青的阶段，最终因为她选择继续读研而季风需要回国的缘故，他们在季风离去的那天分手了。季风启程离开的前一天，他们在校园里散步，季风送给她一首幼稚的小诗，写的什么早都记不得了。那或许是他这辈子里，和徐志摩最近的一天。&lt;/p&gt;
&lt;p&gt;高跟鞋靠近的声音让季风抬起头，他看到一位女士，二十来岁，身着短款连衣裙，礼貌地踩着一双不算高的高跟鞋，臂弯处挎着一只包，嘴唇的颜色很鲜艳。就是她了，和他设想的打扮如出一辙。她在季风的对面坐下，他看着她的脸，惊讶地发现她五官的很多细节都和他记忆中的不一样。那他是怎么在会议上一眼就认出她的？季风自己也觉得奇怪。&lt;/p&gt;
&lt;p&gt;“来了？” 季风率先开口。&lt;/p&gt;
&lt;p&gt;“来了。” 她说。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;“这家酒吧自擂他们的马天尼享誉世界，你要尝一杯吗？”季风挑起话头。&lt;/p&gt;
&lt;p&gt;“真的吗？哦，不过我之前没喝过马天尼。”&lt;/p&gt;
&lt;p&gt;“可能会有点烈，你可以吗？”&lt;/p&gt;
&lt;p&gt;“我试试。”&lt;/p&gt;
&lt;p&gt;寒暄过后，双方都有些无话。季风向后靠，打量身前的女人，当他看到她眼睛的时候，发现她也正注视着自己的眼睛，遂向下看，避开目光。她放在桌面上的手指微微蜷缩着，戴着花哨的美甲。或许是美甲形制有些细窄导致的，显得她的手指有些短胖。也许是她长胖了。记忆里，他们在那漆黑的走廊里十指相扣的时候，季风感觉她的手指很是纤细。&lt;/p&gt;
&lt;p&gt;那晚舞厅发生的很多事情季风都想不起来了，他只记得他精神亢奋而迷醉。他们身体贴着身体跳舞，然后拥吻，然后小茹拉着他退出舞池，进入一个后台的走廊，舞厅的音乐还在透过墙壁传来，季风什么都看不清。小茹的手在他腰部摸索，很快解开了他的裤带…… 时至今日，季风再回想起来，仍然觉得荒唐。&lt;/p&gt;
&lt;p&gt;调酒师一杯接着一杯的摇酒，喀喀喀的声音格外响亮。&lt;/p&gt;
&lt;p&gt;“你现在…”&lt;/p&gt;
&lt;p&gt;“我没想到…”&lt;/p&gt;
&lt;p&gt;他们同时开口，又同时停下。小如说，你先说。&lt;/p&gt;
&lt;p&gt;“我说，我没想到能在这里碰到你，就觉得还挺……感慨的。”季风把最开始想到的”有缘”一词吞回肚子里。&lt;/p&gt;
&lt;p&gt;“我也没想到我们这么多年之后还会再见，”小如说，“当时我们连电话都没有。”&lt;/p&gt;
&lt;p&gt;季风想起，在碰到小茹的那段时间里自己其实是有一部手机的，可是他们分别的太过匆忙，她并没有机会知道。当他们摇晃着走出舞厅的时候，季风完全没有料想到迎接他的是一个明亮的天穹，他总觉得只过了一两个小时。季风早上还要上学，但现在离开始上课还有好一阵子，并且季风可以迟到。他们在舞厅门口的台阶上坐了一阵子，季风问，吃早饭吗？小茹说，好。&lt;/p&gt;
&lt;p&gt;他们往街巷走去。随着天明，熙熙攘攘的人群已经涌动起来，粥桶被推出小店，笼屉喷出大股的蒸汽，他们两个从黑夜里走出来的年轻人踏着污水，从烟雾和人声里穿过，季风并不疲惫，但感到一种失魂落魄的格格不入。我们算是一起看了日出了吧，小茹突然说。季风抬头寻找太阳，没有太阳，但是他看到房檐的阴影投射在蒸腾而起的白色水汽上，他知道，在这排平房的另一半，一轮旭日正勃勃升起。店里的伙计把一盆滚烫的污水泼在他们前方的路上。要不就这家吧，季风说。&lt;/p&gt;
&lt;p&gt;他们走进店里，尚未坐下，季风猛然看到一位正盯着自己的中年男人——他们学校的训导主任。于是，季风就这样被薅住了肩膀，难得地参加了一节早自习。“我们算是一起看了日出了吧”，“要不就这家吧”，这两句话成为了十年里季风和小茹之间最后的一次对话。&lt;/p&gt;
&lt;p&gt;如今，在这繁华城市的酒吧里，季风想到这一幕荒诞的分别仍然想笑。&lt;/p&gt;
&lt;p&gt;“我后来还去过几次那家台球厅，但是都没有碰到过你。”季风说。&lt;/p&gt;
&lt;p&gt;“哦，我不住在那边，所以不常去。”小茹说，“那天去是被小唐拉去的。小唐就是那位…”&lt;/p&gt;
&lt;p&gt;“那位有花臂的女生？”&lt;/p&gt;
&lt;p&gt;“对。”&lt;/p&gt;
&lt;p&gt;“她后来怎么样了？”&lt;/p&gt;
&lt;p&gt;“不知道，我们也很久没有联系过了。”&lt;/p&gt;
&lt;p&gt;季风想起来，那天后，常胖子对内裤就时常刁难，直到后来内裤几乎退出了他们的小圈子。而柳情，在不久之后于脚腕处也添加了纹身，听说因为这个纹身她和家里闹翻了。至于花臂，季风更是再也没有听说过这个人的消息。&lt;/p&gt;
&lt;p&gt;桌上又陷入了沉默。季风端起酒喝了一口，发现小如的酒还没上。他招来服务生催促了一下，收获了一句抱歉。&lt;/p&gt;
&lt;p&gt;“你这杯酒真慢，”季风有些没话找话，“感觉他们调酒师有些忙不过来了。”&lt;/p&gt;
&lt;p&gt;“你现在还打台球吗？”季风想到了一个话头。&lt;/p&gt;
&lt;p&gt;“哦，我很长时间没有打了，你呢？”小如说。&lt;/p&gt;
&lt;p&gt;“我也是，我们上次见面之后，我又接着打了一年多的台球，后来出国以就没打了。”&lt;/p&gt;
&lt;p&gt;“国外没有桌球打吗？”&lt;/p&gt;
&lt;p&gt;“那倒也不是，生活状态变了就想不起来打了，而且身边的人也都不怎么打球。”&lt;/p&gt;
&lt;p&gt;“我去年陪领导打过一次，在那之后也没碰过桌球了。”小如说。&lt;/p&gt;
&lt;p&gt;“陪领导？”季风笑道，“是不是要故意输球？”&lt;/p&gt;
&lt;p&gt;“倒也没有，那个领导打得很好，我没有刻意让球。”&lt;/p&gt;
&lt;p&gt;“哦哦，那你们领导还挺厉害……那之后他没有常喊你陪他打球吗？”&lt;/p&gt;
&lt;p&gt;“没有，他不在这边，那次是来视察的，只待了一天。”&lt;/p&gt;
&lt;p&gt;哦，和自己的情况一样，季风想。&lt;/p&gt;
&lt;p&gt;服务生端来了小如的马天尼，另有两颗橄榄放在小盘子里，季风和小如再次收获了一声抱歉。&lt;/p&gt;
&lt;p&gt;小如端起马天尼，抿了一口，然后皱起眉头。“度数好高。”她说。&lt;/p&gt;
&lt;p&gt;“这款酒确实有些烈了，”季风伸手把小如身前的酒挪远，“喝不了不用勉强，我喝这杯，我再给你点一杯低度数的。”&lt;/p&gt;
&lt;p&gt;小如捏住季风拿着杯子的手，“不用，”她说，“我可以。”&lt;/p&gt;
&lt;p&gt;“鸡尾酒为的是好喝，又不是应酬，不用勉强。”季风说。&lt;/p&gt;
&lt;p&gt;小如没有理会季风的话，她重新端起马天尼，猛地一口喝掉了大半杯，然后毫不回避地看着季风。季风竖起大拇指，做了个无奈的表情，他指了指小如身前的小碟子，“吃个橄榄。”借此，季风闪躲了一下小如的目光，他想起，十年前那间台球室里，花臂和内裤接吻时也是这样看着常胖子。&lt;/p&gt;
&lt;p&gt;小如咀嚼着橄榄，从那一大口酒的刺激里缓解，表情逐渐放松下来。&lt;/p&gt;
&lt;p&gt;“别说，这个酒配上橄榄还挺不错的。”小如说。&lt;/p&gt;
&lt;p&gt;“不想换酒就和我说呗，何必呢……”，季风无奈。&lt;/p&gt;
&lt;p&gt;“弟弟。”小如笑。&lt;/p&gt;
&lt;p&gt;季风也笑了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;小如竟然就这样爱上了马天尼。直到小如喝完这杯之后又提出加一杯一模一样的酒的时候，季风才确定她似乎是真的喜欢这款高度的鸡尾酒。于是，季风也不得不再给自己多加了一杯酒以陪她。而这多加的一杯酒，却改变了季风酒后带小如直接回酒店的原计划——他们又聊回了台球，连喝三杯的季风有些亢奋，坚定地要求和小如再打一局球，一雪前耻。&lt;/p&gt;
&lt;p&gt;处于同一座楼的酒店里就有台球可以打。季风第一局输了，他不服气，接着又打了第二局，赢了。季风搂着小如说让她不要放水，不要把自己当领导。你要还把我当十年前的那个弟弟，季风说。小如说我没有让你，季风不信，她说季风喝多了。&lt;/p&gt;
&lt;p&gt;第三局也是季风赢了，他总算是扳回一局。&lt;/p&gt;
&lt;p&gt;他们又去跳舞。小如说现在没有迪斯科了，大家都去蹦迪。于是他们往迪厅去蹦迪。历史上的那晚隐隐降临在今晚，或者说，季风借着酒劲，拽着也有些微醺的小如向过去跑去——季风觉得他们应该跑得回去的——他们还年轻，应当还跑得动。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;出来的时候，季风和小如在迪厅盘曲的门廊里走错了，从一个不知名的侧门出到了一条不知名的街上。舞厅外的冷空气从十年前吹到今天。&lt;/p&gt;
&lt;p&gt;这条侧街很狭窄，一辆警车停在路边，有几个环卫工在摆弄黑色的巨型垃圾袋。季风仰头，身前身后都是摩天的幕墙，天顶的一隙蓝色发着亮光。街灯已灭。就像是，就像是清晨的曼哈顿，天气还应该更冷些，井盖往外喷出怒放的蒸汽，流浪汉在街角，头顶脏而破的绒线帽，身边的那个女孩儿有着金色的卷发和火红的嘴唇，黑色的礼裙外面裹着短款的羽绒服，两条筷子似的的腿露在寒风里，她的凉鞋几乎让脚背垂直，欧美女人对高跟鞋的驾驭让人瞠目结舌，冰冷的空气里有大麻的味道，搓搓手，张嘴喷出一口昨夜滚烫的白色热气，目送它在在眼前消散，&lt;/p&gt;
&lt;p&gt;季风再也没见过她了，那几幕景象就是季风对她的全部印象了，她的脸都是模糊的——这是个通用的剧本，他和小如也本应如此。搓搓手，季风张嘴哈出一口幻象。&lt;/p&gt;
&lt;p&gt;季风在台阶上坐下，小如也跟着坐在他边上。小如原本一丝不苟的头发此刻已经有些杂乱，一些发丝从夹子里挣脱出来，她粉底打造的盔甲在褶皱处也有些破损和剥落，斑斑驳驳的，显得脸上脏脏的。&lt;/p&gt;
&lt;p&gt;精疲力竭。&lt;/p&gt;
&lt;p&gt;有人醉酒后的大笑和呼喊声在楼宇间碰撞着而来，他们对视一眼，看到了彼此眼里的疲态——他们终究还是离开了蹦一晚上后还能去吃早饭的年纪。&lt;/p&gt;
&lt;p&gt;他们要各自回住处。季风虽然非常不愿意，但还是提出要先送小如回去再回酒店，小如说没必要，各自打车就好了，季风欣然接受。&lt;/p&gt;
&lt;p&gt;下午三点还有一场会，季风看了日历。他突然想起自己先前打台球时，让小如不要把自己当领导的话语，愚蠢！他看向她，她正抬头看着高处，他听到有鸟鸣声，但看不见鸟。天光又亮了几分，在玻璃楼之间反射，世界锐利而低饱和，季风甚至觉得自己能看见小如脸侧和鼻翼上修容的粉尘的颗粒，颗粒的排列让季风能想象她把这些色彩往脸上涂抹时的笔触。她好像真的胖了。冷冽的晨光下，他看着她脸上昭然若揭的假阴影。&lt;/p&gt;
&lt;p&gt;辛苦她了，季风想，那第三盘球小如应该还是放了水。&lt;/p&gt;
&lt;p&gt;环卫工人拖着垃圾袋走了。他们各自开始在手机上打车，季风听到她的长指甲在手机屏幕上敲打出的哒哒哒的声音。&lt;/p&gt;
&lt;p&gt;小如说，我们算是一起看了日出了吧。&lt;/p&gt;
&lt;p&gt;季风有些愣住。在这城市的岛屿里，甚至直到上午十点都见不到直射的太阳，又如何能看到日出？季风想起在国外的田野里看的那次日出：车里睡觉并不舒服，他和那位有着诗意名字的女青年在太阳升起之前醒来，坐在车顶上看太阳从谷仓边升起来，车顶上都是露水，等他们反应过来的时候，冰凉的水已经从外裤渗透到了他们的内裤，他们把裤子晾在后座上，他光着屁股开车，她光着屁股坐在他边上——没关系，这条田野间的路上没有别人，晨光公平地照耀着谷堆、路边的小花、以及他们的下体。&lt;/p&gt;
&lt;p&gt;季风另一次看到日出是在回国后，他和三五好友趁着黑夜绕过保安，穿着黑色的外套，带着相机，爬上了一座在建的摩天楼的顶端，他们看着火红的太阳冲破城市的烟尘，直到身边的钢筋铁骨都成为剪影，于是他们几个影子似的人儿在小小的露台上雀跃，他看到，其中一名女生竟热泪盈眶。&lt;/p&gt;
&lt;p&gt;可是，这次能算是看了日出吗？如果这次算的话，季风早已和其他千百个小如看过日出，并且季风相信，小如也和其他千百个季风，或是千百个别的什么领导，看过日出。&lt;/p&gt;
&lt;p&gt;季风想起，十年前她也是这样问的，自己并没有回答她，彼时季风的生命里没有日出一词。可现在，在看过了日出之后，季风发现自己只更难回答这个问题。&lt;/p&gt;
&lt;p&gt;“你看过真正的日出吗？”季风问。&lt;/p&gt;
&lt;p&gt;“真正的日出？”&lt;/p&gt;
&lt;p&gt;“就是看到太阳从地平线，或是什么别的东西的后面，升起来。”&lt;/p&gt;
&lt;p&gt;“没有……”&lt;/p&gt;
&lt;p&gt;一辆垃圾车轰隆隆地开过，然后季风又听到了鸟鸣。低头看了一下打车软件，季风忽然从地图上发现，他们这误打误撞走出的无人的侧门，竟然是朝东的——此刻，就在此刻，他们面前的那面幕墙的后方，应正有一轮红日跃动。&lt;/p&gt;
&lt;p&gt;“那我想，我们算是一起看了日出了。”他说。&lt;/p&gt;
&lt;p&gt;季风侧头看向小如的脸，发现小如也正看向他，她眼里有点笑盈盈的样子，似乎很满意这个答案。她挪了一下屁股，挤到季风身边，把头靠在他的肩膀上。如果此刻他们前面没有那面幕墙，他们的影子应该在身后拖得很长很长。&lt;/p&gt;
&lt;p&gt;季风盯着对面幕墙上的某一个接缝，竟莫名有些想流泪，和一名自己点名要来的女郎从迪厅里走出来，然后坐在一个堆满垃圾的侧巷里等出租车，面对着一座楼房想象后面可能有太阳——这应该是自己看过的最不浪漫的日出了吧——如果这也算看日出的话。&lt;/p&gt;
&lt;p&gt;小如叫的车到了，她站起来整理了一下衣服。&lt;/p&gt;
&lt;p&gt;“等一下，”季风叫住她，“如果……我是说……你会想看一次真正的日出吗？”&lt;/p&gt;
&lt;p&gt;“不想。”她回答的很干脆，“没什么好看的。”&lt;/p&gt;
&lt;p&gt;季风再次愣住了，他原本想说，我可以带你去看一次真正的日出，现在他并不需了。&lt;/p&gt;
&lt;p&gt;小如打了个哈欠。&lt;/p&gt;
&lt;p&gt;“再见！”&lt;/p&gt;
&lt;p&gt;“再见！”&lt;/p&gt;
&lt;p&gt;他目送她的车远离。&lt;/p&gt;
&lt;p&gt;季风自己的车很快也到了，他在回酒店的出租车上总反反复复地想起小如的那个像是在自问自答的问题，我们算是一起看了日出了吧，隐隐总感觉到肩膀上还有重量，脖颈处还有发丝在撩拨。她竟然说不想看日出，季风打开窗户让风吹着自己，感到一股莫大的庆幸与怅然若失。自己今天太不对劲了。&lt;/p&gt;
&lt;p&gt;出租车上了高架，在楼宇间奔驰，季风望向东边的建筑，一霎那，群楼打开了一个开口，季风的视线从这个开口处直达天边——哦，东边是满天的阴云——今天本就没有日出。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/日出/</guid>
<pubDate>Tue, 03 Oct 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>程式禅</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/程式禅/</link>
<description> 






&lt;pre&gt;&lt;code&gt;midstream@LAPTOP-HAM25V2O:~$ python3
Python 3.10.6 (main, Aug 03 2022, 22:40:16) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
&amp;gt;&amp;gt;&amp;gt; import this
The Zen of Python, by Tim Peters&lt;/code&gt;&lt;/pre&gt;
&lt;section id="一" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="一"&gt;一&lt;/h2&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;优美优于丑陋，明了优于隐晦;&lt;/p&gt;
&lt;p&gt;简单优于复杂，复杂优于繁杂，&lt;/p&gt;
&lt;p&gt;扁平优于嵌套，稀疏优于稠密。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在曙光桥南地铁站的德克士里，禅师如是说。&lt;/p&gt;
&lt;p&gt;他告诉我，这世间万物轮回均恪守着这套规律。道可道，非常道，大道至简且一目了然，就像Go语言。把简单的事情做复杂很容易，把复杂的事情做简单很难。真正的禅就是化繁为简，化不可读为可读，化无序为有序，如果能够做到这些，哪怕冒泡排序也不是不能接受。&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;任何问题应有一种，&lt;/p&gt;
&lt;p&gt;且最好只有一种，&lt;/p&gt;
&lt;p&gt;显而易见的解决方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;禅师说，越表面就越幽邃，越浅显就越深刻，越明了就越玄奥。&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;特例亦不可违背原则，即使实用比纯粹更优。&lt;/p&gt;
&lt;p&gt;错误绝不能悄悄忽略，除非它明确需要如此。&lt;/p&gt;
&lt;p&gt;面对不确定性，拒绝妄加猜测。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;禅师把鸡翅骨嗦成无暇的半透光的白玉——他如炬的慧眼能看透鸡翅内在的程式，因而能带着常人难企及的刁钻和写意将那些冥顽的细肉剔入胃囊。&lt;/p&gt;
&lt;p&gt;很难想象，彼时野蛮愚昧的我就是在这样一个半地穴的土垒般的餐馆里，和许多原始人同族以及地上的蟑螂一起闻道，而逐渐开化的。直到后来禅师离去，这方地下的小空间和通向它的淤尘积垢的甬道仍曾是我们的朝圣地。呼啸而过的地铁是程式禅的铃磬。&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;做优于不做，然而不假思索还不如不做。&lt;/p&gt;
&lt;p&gt;很难解释的，必然是坏方法。&lt;/p&gt;
&lt;p&gt;很好解释的，可能是好方法。&lt;/p&gt;
&lt;p&gt;命名空间是个绝妙的主意——我们应好好利用它。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;再后来，那半间地洞在一场席卷京畿的大暴雨中被淹没，NewBalance的鞋印、涂鸦在墙上的代码、满地的头发、还有在辩经声中孕育孵化的悬铃木方翅网蝽幼虫、连带着禅师普渡众生的旧闻也一同被洪水带走，流入油腻的离壁沟，从水泥板的缝隙里一直渗到这座古城的最深处。&lt;/p&gt;
&lt;p&gt;“老师还会回来的，”盖说。我不置可否。他是整个曙光家苑最早遇到禅师的人，是第一个拜入禅师门下的人，也是禅师如同网络热闻一样被众人关注又被众人遗忘后，仅剩的一位追随者。他热爱程式胜过热爱美人，忠于禅师胜过忠于金钱，甚至我最早认识禅师也是通过他的引荐。&lt;/p&gt;
&lt;p&gt;没人知道盖的真名叫什么，不是他不说，只是没人愿意费脑子记住。记一个字比记一个名优越，更比记住两个指向同一个实体的不同称谓优越，没人想要两个指针。&lt;/p&gt;
&lt;p&gt;盖是我楼上的邻居，当时我才刚落宿曙光家苑仅仅数月，年轻、残废、而神经质，每日像僵尸一样拖着板结的身躯和异常的思想往返于曙光家苑所在的剧场路和城市另一头的一家国企，穷匮于单位给我的任务和酬劳，把灵魂托付给一位二流作家的众多三流小说。小说里的人都半疯，半傻，半残，罹患难以启齿身体和精神的怪病，还有市井轶闻，宗教神学，以及众多我闻所未闻的不朽著作的低俗引语，我看的终日头晕脑胀，却愈发不可自拔，总觉得身边藏着能人异人病人——但可不是吗，我看众人与我自己都是如此，也不是那胡言乱语的小说的问题，只是我们把我们的能、异、病藏起来了，或是见的人多了便不觉人能，不觉人异，不觉人病了。我乘地铁回家，我们都乘地铁回家。湿漉漉黏糊糊的我们在车厢里，缺乏日间行动的浮肿的躯干们互相摩擦，像一鞘白胖的半孵化的虫卵挤在雌虫的腹里，眼珠子咕噜噜的转，肉芽样的四肢划动。我们压的扶梯转不动，推搡着在甬道里前行。下一班地铁又到了，无数个小窗户里是数不清的流汗的脑袋、千万双眼，像鱼市，像电影里的邪恶的实验舱。门开了，他们被释放出来，成为我们。&lt;/p&gt;
&lt;p&gt;盖在楼上奏乐，这让我无法忍受。我从人群中脱身回到我避难的寓所，扒下浸透了自己和人群分泌物的衬衣，躺在床上我的眼睛和太阳穴还在跳。盖的音响发出的是一种听不到但却让人揪心的低频波，伴随以从他肿大的野兽的扁桃体处发出的呕吐般的喉音。我的脑子在头壳里蠕动，要从五官七窍冲出来。盖本应是一位大师级的黑人说唱歌手，这是大家都承认的，但却错被生成了亚洲人，我们可怜他被老天玩弄的身世，而不忍心拎着擀面杖一脚踹开他从不关上的破烂大门，冲进他贴着纹身裸女海报的房间，把他宝贝音响砸的稀巴烂。盖玩过电子音，玩过吉他，玩过键盘，会一只手摆弄电子合声器一只手弹琴，他除了工作什么都会，什么都有。他曾被对面（曙光家苑的房子和房子间距过小）的人举报过吸毒，不知是因为那户人家真的看到了什么还是仅仅是被他形销骨立，佝偻而惨白的身形吓到，有人来查，但没被查到证据。他自称是对面的婆娘觉得他的歌词会带坏小孩，恶意举报的。自那以后，盖在他的创作中加入了大量对敌方的咒骂，并在面向对方的卧室墙面上涂鸦恶语，终让那位母亲自废了一扇窗，再也没拉开过窗帘。那是盖为数不多的胜仗之一，他无数次呲着他的间或被涂成彩虹色的龅牙找我说起此事。&lt;/p&gt;
&lt;p&gt;我是乐于听盖说话的，他身上来自美国和帮派的的无法无天的消沉的活力于我，就像是一剂吗啡于行将就木之人，惶惶然反应过来自己还活着：撸一把胳膊，捏一下油腻的鼻头，把双手放在肚子上，原来我因久坐而有些畸形的身体还在运转。上班，下班，白晃晃的灯管，地铁站里都是人，男人，女人，装在双肩包里的衬衫，黑色的小皮鞋踩在台阶上，白色的短袜，也可能是船袜，外人看不见，只有脚跟处的创可贴，jk裙或者是西裤，西裤配的是运动鞋，被静音的手机在裤兜里亮着，薄薄的布料根本挡不住，除了自己谁都能看到，但是没人看，因为忙着走路或忙着发呆，要吃早饭，从便利店里拿走一个面包，他或者我晚上还要再来一次，买一些关东煮，就坐在玻璃前的小桌子上吃，边上还有别人吃一样的或者不一样的，不会有任何交流也不会有任何人想要交流，看手机或者看窗外，窗外是黏稠的黑夜，罕有几个人在里面游泳，只有便利店是成年人的乐园，明天又要上班，也可能会是休假，但是上班还是休假并不是很重要，周末并不会比上班更令人雀跃，只有学生才会在周五的晚上去工体蹦到天明，还是学生好，节日的前一周就是节日了，周五的下午也是周末，抽烟是为了装逼喝酒是是为了醉，醉了有人问数学题还有人录像，失一次态会被调侃一个学期，睡一个懒觉起来微信有未读消息，甚至有很多，回都要回半天，满脑子吃喝玩乐，还要打球，出一身臭汗再洗一个冷水澡，呵，打球，上一次打球是什么时候，记不得了，上一次洗冷水澡似乎的时候似乎还是学生，不能洗冷水澡了，洗冷水澡会着凉，打上泡沫打开花洒，头发又把下水道堵住了，用手去扣，几只黑色的小小小的虫子从下水道飞出来，总归好过苍蝇蚊子，洗完澡又出一身汗，城市里没有凉风只有热风，站在路口像是站在空调外机边上，热风吹得一身鸡皮疙瘩，原来鸡皮疙瘩不仅可以防止热量流失还可以防止热量进入，公司有冷气，冷气是发酵的，一股子人味儿，冷得又一身鸡皮疙瘩，冷的人肚子疼，厕所里是满的，几扇门都是锁住的，不知道哪一间里亦或者哪几间里一直有压抑的苦痛的或解脱的喘息，黏糊糊的喘气声只让人想尽快远离，有人在工位吃煮鸡蛋，口腔里煮鸡蛋的味道竟然臭过韭菜大蒜，大家都在电脑上看新闻，股票涨了又跌，美国又发生枪击，领导人又发表重要讲话，讲的是政治经济军事社会文化主旨改革思想台湾香港绿色落实能源伟大复兴贯彻民声生产全球化国际化中国梦民族梦坚持开放稳中向好各族人民新希望新政策新征程，台风去了又来，美联储升息降息，全球变暖，物种灭绝，冰川融化，海平面上升，马尔代夫就要被淹没，紧接着就是日本，香港，纽约，上海，我们都要被淹没，淹没！淹没！淹没！成为庞贝，成为亚特兰蒂斯，没有人能活下来，没有！没有！没有！暴雨就是预兆，老城墙里的古树被雷劈掉了一根粗大的枝，马路成为一条条小河，车一开过去都是泡沫，打不到车，因为所有人都在打车，于是又要走路，在雨里走路，把皮包夹在腋下，领带是歪的，白衬衫贴在身上，有人鞋掉了，回头去捡，撞在后来者的伞上，黑色的小皮鞋踩在台阶上，白色的短袜，也可能是船袜，外人看不见，只有脚跟处的创可贴，创可贴沾了水就不粘了，从脚跟掉下来扒在人行道的砖上，我想跑。我跑不动，如果我此刻还是学生，我定会把包顶在头上发狂似的跑向地铁站，就像曾经追逐末班的公交车那样，和三五好友一起，跑过水坑水花能溅出五米远。但我隐隐作痛的胯骨和羸弱的双腿不允许我跑，也没有人能和我一起跑。人们都不像是活的，都是游戏里的npc，迈着一样的步伐回到一样的寓所，躺在床上，用手机浏览短视频，上划上划下划，下划下划再下划，一个主播一个主播又一个主播，源源不断比比皆是头头是道津津有味孜孜无怠啧啧赞叹！可主播和主播都是一样的主播，在一样的房间里拍摄一样的视频。流水线的生产，流水线的消费！可怖！可怖！可怖！我抓住救命稻草一样抓住盖，盖是活的，至少在曙光家苑乃至整条剧场路，他的同质化没那么严重。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="二" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="二"&gt;二&lt;/h2&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;Beautiful is better than ugly.&lt;/p&gt;
&lt;p&gt;Explicit is better than implicit.&lt;/p&gt;
&lt;p&gt;Simple is better than complex.&lt;/p&gt;
&lt;p&gt;Complex is better than complicated.&lt;/p&gt;
&lt;p&gt;Flat is better than nested.&lt;/p&gt;
&lt;p&gt;Sparse is better than dense.&lt;/p&gt;
&lt;p&gt;Readability counts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过盖的介绍我第一次遇到禅师的时候，他说的是英文，这在当时狠狠地震撼了我，虽然后来证明他的发音都是错的。如果一个人已经会了一门技能，比如说，外语，那为什么又要用另一门技能谋生呢？比如说，编程？&lt;/p&gt;
&lt;p&gt;“先学会英语，然后才能学会编程，”禅师说。他说起话来很有亲和力，不虚伪不倨傲不轻浮不做作，”你要知道什么是integer，什么是boolean，什么是vector。“我不知道，我不仅不知道什么是integer和vector，我更不知道这位中年男人从哪里走来，要向哪里走去，为何停留这里，为何会英语、会编程，知道什么是integer，什么是vector。他是从我日日阅读的书里走出来的神秘者、异能者、玄奇者，他定然担负着什么特殊的使命，不可言说不可窥探，往这里来，往别处去。&lt;/p&gt;
&lt;p&gt;“目司探看，是标尺是探针是gdb是perfetto，能剥离伪装、剥离表象、剥离套在山石树木风雨雷火外的那层壳，使露出里面的程式来，于是可以看清内存、看清调用栈、看清世界万物；指司创造，是针线是画笔是compiler是interpreter，能抓握、搬运、书写、让虚无的程式运转，于是可以化元语法为语法，化抽象为具象、化海市蜃楼为危塔雄城；心司静悟，是明鉴是方塘是graph是DNN，能思考学习、抽象原理、类比推理，于是可以化糟绪为程式，化混乱为明晰，化腐朽为神奇。“禅师用如炬的目光洞穿我，”你的程式很乱，说明你的心绪是衰败的，是曲折的嵌套的隐晦的丑陋的，你的作息很稳，却稳不住你的呼吸你的汲养，你的红细胞泛着一氧化碳的黑色，像吸了一大口汽车尾气一样，你的眼是盲的，指是僵的，心是打结的，里面写满了goto，你懂吗，goto，无条件跳转。“禅师叹气。&lt;/p&gt;
&lt;p&gt;“盖，你的朋友状态很糟糕。”&lt;/p&gt;
&lt;p&gt;于是，后来我向禅师讨教长寿的心经秘窍，在盖的小客厅里，我们各自团缩起来围成一圈，夏天日落后的天穹还会继续亮一阵子，亮到不用开灯，屋内又幽晦又清晰，像原始人的石窟，我们讨论着天文、异象、祭祖、毛皮和火种、执掌雷电和命运的大神，盖的西海岸风格的挂画是粗狂的石刻。禅师说他在成为一名老师之前也曾焚膏继晷，书写过十万行百万行的代码，是java的魔术师，sql的通灵者，网络通信的扫地僧，能用php把甲方耍的团团转，css是他最熟悉的语言，其次是英文，第三才是中文。腱鞘炎知道吗，腱鞘炎，他说起腱鞘炎，医生看着他指尖的老茧，遗憾告诉他此后不能再弹吉他，但他从来不会弹吉他，他指尖所跃动的主场是一把看不见字母的键盘。他又说起肩周炎，颈椎病，肿大的肝脏，曲张的静脉，腰间盘突出，脊髓被压迫着要半身不遂。人体工学，你们听说过吗，工学椅，升降桌，分体键盘，羽毛球是好运动，你要仰起头，你会打开肩膀，牵引，推拿，盲人按摩，按摩是有大智慧蕴含的，凡夫俗子难以揣测，你要精通梵学、魔学、算学、神秘学、征兆学、词源学……&lt;/p&gt;
&lt;p&gt;我们至今不知禅师为何离开曾经日进斗金的外包业务转而成为一名培训学校的老师，或许是积劳成疾不得不退隐，或许是看透尘世散去千金，却愿自己所悟之道薪火不断，或许是悲悯世间难独自成道，转而化作我等痴呆者的摆渡人，又或许……在这产业变迁的年代，我们都各有猜测，隐隐拼出一个务实的雏形，但我至今不想过多的思考这种可能。窗外的天空呈现出惨淡的色彩，像一大块淤青，盖的家在三楼，楼边死树成为一团阴毛一样的扭曲剪影。今天的讲道结束了，禅师带走最后一缕光线，留下我们三个亚健康者沉默着，无话可说，无处可去——我，盖，还有陈妙。&lt;/p&gt;
&lt;p&gt;陈妙是剧场路尽头那座旧剧院边的一间咖啡厅的服务员，和她的一位同事分享曙光家苑的一间公寓，因食宿均由咖啡馆负责而导致她竟是我们这群病人中最阔绰的一位。她说她的老板是一位耳顺之年的老头，在城里还有另外几家咖啡馆和酒馆。哦，慷慨的企业家！我想他必然西装革履，文质彬彬，喝不加冰的威士忌，懂咖啡红酒和雪茄。陈妙的同事兼室友是一位大波浪美女，自誉或自贬为咖啡师，但她并不负责做咖啡，反而常出差，行李箱里是高跟鞋和晚礼裙。美女咖啡师遭尽剧场路沿路的阴湿烂仔们觊觎，简直可以谱写一部《曙光家苑的美丽传说》，哦不，或许不行，因为如本人和盖这类借宿者并无胆识和能力来推动一场悲剧，只能偶尔无害地远望她离去或归来的窈窕身影。我第一次在深夜的便利店见到陈妙时她们俩就相伴而行，所以后来在花房和陈妙攀谈上的时候，我也并不敢说没有借此和美人儿拉近关系的想法，不知道盖后来接触陈妙是否也有这种心理作祟。坦诚的说，我和盖的行动过于幼稚和拘谨了，以至于美人或许从来都不知道我们的存在。那时的我才刚毕业，对社会上的人事物都煞有其事地给予郑重的敬意，看谁都是前辈，做什么都不敢逾矩，其实对于美女咖啡师，我也仅仅只是渴望接近而无任何其他念想。我不知盖怎么想，他嘶吼着无法无天的歌词，但我知道他时常比我还谨小慎微，是一只长得像狼的哈士奇。因此，当我知道被我给予了等同敬意的陈妙还没成年的时候，我只感到无比绝伦的荒谬——她甚至比我那位备战高考的表弟还小一岁。哈，我原来就是那位天天徘徊于院门口的小老头，一把年纪却见谁都点头哈腰，任后生颐指气使！我自己把自己的履历，心智，声望，尊严，都排在曙光家苑鄙视链的最末端。盖也是如此，所以我们两个天差地别的人才能在彼此身上找到一股熟悉感，因为在整个儿曙光家苑，只有我们两个自居为社会的实习生。&lt;/p&gt;
&lt;p&gt;平心而论，陈妙也算一位耐看的姑娘，只是被同住人盖住了光芒，她高挑的身姿常令我自惭形秽，觉得这副身板妄称男人，特别是考虑到她那位篮球队的男友，我更觉得自己是发育不良的残废。“我学的是数据和会计学，你知道什么是会计学吗？反正我是不知道。”本人也不知道，我只知道若算上食宿，她赚的远比我这位堂堂本科生要多。她爱看电影，憧憬浪漫，满脑子都乐队的歌词。要去小岛，小岛要在北极圈里，冰川流向暗色的海，头顶是北极光的缎带，每天只有四个小时太阳：两个小时是日出，两个小时是日落，要俯下身，用冻得通红的小手拨开雪，有坚强的小黄花，要喝茶，最好是热腾腾的绿茶，热气拂过脸孔，睫毛上是亮晶晶的小水珠，要骑摩托车，意大利和美国，骑杜迪卡或是雷哈，坐在后座上抱住男友的腰，哦不，自己骑车也很酷，把手上要摆小黄鸭，夕阳照耀在艾玛非海岸公路或加州一号公路上，这辈子一定要去，文章里说中国的海岸线朝东，难见日落，太阳落进大山里，追进去能看见银河，银河落下去升起来的是云雾，云雾闻起来凉爽柔软，山里有伸向天空的大天线，对着宇宙深处发射与接收信息，发出奇怪的像是说话的噪声，他问你相信外星人吗，你认真地在天线下思考外星人的问题，你知道吗，宇宙的终极秘密是42，于是聊宇宙的秘密，还有星系尽头的小餐馆，小王子有一天看了44次日落，本来是43次，哦，可爱的可怜的小王子，山里会下蒙蒙的雨，踩着荒草石板离开，身后遮天蔽日的天线骨骼缓缓转动，雨滴打在沥青路上，不赏山里的雨，赏城里的雨，铅灰色的布景里只有消防栓红得刺眼，窗内有鲜艳的小靠枕，雨会停，窗板像是冰糖做的，天上有金光，玻璃晴朗，橘子辉煌。&lt;/p&gt;
&lt;p&gt;小陈妙崇拜她的正在念书的小男友，因而对本人也产生一股子敬重——有幸本人毕业的院校名气更大。因为我和盖称兄道弟，陈妙也连带着高看盖一眼，虽然他俩学历相当，音乐品味上更是不甚对付，仅有的共识是不听《成都》。不过，她却没有继续因为我和盖对禅师的尊敬而尊敬禅师，她的眸子、她的鼻息、她的子宫、她血管里奔涌的雌二醇和黄体酮、她十七岁少女的金色的心，都本能地鄙视着这来历不明的无妻无儿的中年男人。我和盖不会劝她，因为她不是程式的禅的有缘人——她不想要也不需要一份新的工作和薪水，她有个慷慨的老板——不同于我们。不过，最近陈妙从咖啡厅被调班到酒吧，工作地点仅相距50米，但上下班时间点相差了9个小时，这让她女人的身体有些不适，我和盖就拉她来听禅师讲讲职场养生学。”呵呵呵，你们觉得我博学是因为你们没有到大公司工作过，没和上层的人士做过交易进过晚餐，“禅师连连摆手，”学无止境，业余里，我只能勉强算个杂学家。“&lt;/p&gt;
&lt;/section&gt;
&lt;section id="三" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="三"&gt;三&lt;/h2&gt;
&lt;p&gt;禅师给我们讲编程，不过在那之前要先学为什么要学编程，我其实是有些好奇，为什么要学为什么要学编程，但我忍住没问，害怕引出他过多过深奥的哲学、禅学和方法论。禅师曾有学员甲，拜入门下后学习java，短短两个月就从一名小混混飞升至某知名大厂，又有学员乙，曾因短视成为失败的员工和投机者，被禅师指明了方向成为前端后财务自由，更有学员丙丁戊之流，群星闪耀，举不胜举。“你们要选定好方向，想想自己梦想成为什么样的人，”语重心长，谆谆不悔，禅师给我们看了他呕心沥血整理的各种技术和方向的学习路线，“有线路有计划的学习，才能少走许多弯路。”&lt;/p&gt;
&lt;p&gt;前端，后端，数据库，java，python，php，十八般兵器，一条条熠熠生辉的金光大道！只可惜你我眼界狭隘，气力萎靡，无法让如同禅师般样样精通，成为一名全栈工程师。什么是全栈，全栈就是所有，就是程式万法的集大成者，一木成林，一人成军，操盘全局的每一行代码。多么科幻，多么炫酷，禅师在那黑漆漆的程式的窗口里操作，密密麻麻的字符滚动，是极客，是学者，是恐怖的网络骇客，是钢铁侠，是比尔盖茨，是程式员，这就是程式员。笔记本的风扇叫嚣着，吹出滚烫的风，桌面侧边的五花八门的一个个加速球都变成高压的红色，禅师不为所动，指尖跃动着，任务管理器里的波浪曲线高高低低，他甚至不知道什么时候抽空把每个球都点了一次加速，交织、跳跃、凝聚、升华，好一曲程式的华尔兹！&lt;/p&gt;
&lt;p&gt;整型数、浮点数，分支和循环，禅师教的是python，我们战的是未来。数组，变量，字典，集合，总把冒号打成花括号再退格，写完continue或是break总要加一个分号，缩进，缩进，再缩进，哦，这既不扁平也不优雅，他要优化，优化，再优化。禅师念给我们的的程式禅是python的禅，是蟒蛇的烹饪艺术，你在终端里输入&lt;code&gt;python&lt;/code&gt;，再输入&lt;code&gt;import this&lt;/code&gt;，对，你试试，无法将“python”项识别为 cmdlet、函数、脚本文件或可运行程序的名称？哦，你要配置环境变量，算了我先给你们讲一下操作系统。&lt;/p&gt;
&lt;p&gt;Windows7，macOS，哦，令人怀念的XP，windows 10？你们知道吗，真正的开发者追求的是稳定而不是新，现在全世界还有无数的python2.7在运行，嗯，你们抽空把windows回退一下，要不直接用centOS算了，大公司都用centOS，对的对的，这是linux，但是如果有人和你说linux是操作系统，那这个人显然水平也就如此了，外行，人云亦云，知道GNU吗，应该是GNU/Linux才对，不得不提到理查德、点儿、斯托曼，是他开发了GNU，什么是GNU？哦，GNU是GNU Not Unix的首字母缩写，呵呵，GNU Not Unix里的GNU的意思也是GNU Not Unix的缩写，你们有不理解的先听着，后面都会学的都会学的，我可以先和你们说一下，这个叫递归，欸对叫递归，在我们的算法课里会讲到的，非常重要，欸，非常重要，我的算法课程有电子版的，在网上可以搜到的，前三节是免费的，嗯，这个收益本身就是可有可无的，重点是让你们学到干货，在求职市场里有竞争力，就我们熟知的这些大公司啊，大企业啊，他们招聘的时候怎么样，欸，都是考你算法的题目，所以可想而知我们这个算法课的重要性，一定要认真学啊，认真学。&lt;/p&gt;
&lt;p&gt;禅师说他巅峰的时候曾有几百名学生，可仍然觉得自己的力量太过微薄，于是离弃，和北极光一起南下，寻找新的可能，恰在曙光家苑落脚，去往哪里？或许要继续向南，去往更有活力的地方，学无止境，禅师说。但他似乎并不只是在这里落脚这么简单，他堂而皇之地开了班，把大广告贴在自己家窗户上，小广告贴在别人家窗户上。后来我们才知道，在平日我们上班的时候，还有许多孩子来听禅师讲道。禅师喜欢孩子，许许多多可可爱爱的小生灵，他们需要禅和真理。这是陈妙和我们说的，她换到酒吧的夜班以后白天都在院子里，彼时院里只有老人和孩子。无论如何，大约禅师到来的一个月后，在整个剧场路便可以算得上是德隆望尊了。“现代社会，浮沉不定，步履不停，逐利不逐心。”禅师叹气，“为你们，我授程式禅，架登云梯，可这是一条逐利之路，程式禅让人摆脱愚昧和贫穷，带来黄金和名望，但你们要守住本心。”&lt;/p&gt;
&lt;p&gt;哦！程式禅，大梵天！明亮似火轮，普照如太阳！盖高声诵经以传播福音。每周每日，院门口的象棋摊边多出了新的集会，有时在曙光桥南地铁站的德克士，这里有科学的迷信言论和一手的二手信息，自由软件，公司动向，开源社区，要阅读阅读hackernews文章的博主的文章，总结总结github trend的repo的trend，新的语言崛起了，c++恐将被淘汰，这个最新的神经网络竟然打败了CNN，不可思议，什么，最快的编程语言竟然是zig，至于什么是zig，这要去问问禅师，谷歌微软，腾讯阿里，海外巨头，国内电商，招聘了，裁员了，大神发话了，牛人跳槽了，这个领域极缺人才，那个行业缔造神话，蜂拥而至，蜂拥而至，找不到工作是暂时的，结构性调整，市场是对的，只是情绪出了点小问题，php是世界上最好的编程语言，前端大有可为。&lt;/p&gt;
&lt;p&gt;陈妙每次路过的时候，都会从鼻孔里发出一个不屑的促音。&lt;/p&gt;
&lt;p&gt;我们散步。剧场路是一条狭而短的林阴路，行道树高而合冠，滑腻腻的夏夜，我们走在一只蚯蚓的肠里。剧场路一头是曙光桥，另一头是一座老剧院。老剧院很老了，曾被修缮、启用、废弃、再修缮、再启用、再废弃，墙皮像树皮一样生长，剥落处能看到一层层的年轮。有人说老剧院的某一层墙皮里夹了很多张大字报，上面冤死者的名字被粉刷起来，保存的比他的碑还好，至于具体是哪一层，没人说得清，反正肯定不是最里面一层，剧院落成的时候还是民国呢。剧院的形很气派，但并非是中式的那种气派，从被繁荫包裹的剧场路窥视那一头的剧院，总觉得这短短的小通道从华北一路通到了上海滩。陈妙爱上海，但我不。禅师说，上海的摩登女郎清晨从弄堂中醒来，提着粪桶去苏州河里用上游洗刷过的水继续冲洗，回到家里，画上红唇眼影穿上礼裙，喷上香水，才能款款走向外滩，禅师又说，男人，他看向我和盖，男人的简历就是女人的脸、胸、屁股，你们要学会打扮，必要时不可吝啬假体，要把硅胶捏出一个造型然后塞进皮肤下面，鼻子一定要挺，胸和屁股一定要翘。那时候，禅师提供的服务也包括“简历渲染”。”世界是男人的，所以女人用美貌主宰男人；世界是老板的，所以员工用履历主宰老板。“陈妙说，为什么不是员工依附老板，女人依附男人？”依附亦是主宰，主宰亦是依附，“禅师说。“世界更是阔佬的，但只有极美丽的女人或是极优秀的简历才能主宰阔佬。” 我想，陈妙的室友那样美的女人，究竟能主宰多少男人，或是多阔的阔佬。她每每在我们的目光里推着行李箱离去的时候，是否怀揣着主宰世界的豪情壮志。&lt;/p&gt;
&lt;p&gt;“我想明白了，我要去工作，”盖对禅师说，“你是我命里的贵人。”&lt;/p&gt;
&lt;p&gt;剧场路的树开了不知道什么花或是结了不知道什么果实，落在地上、台阶上、共享单车上、灌木和栏杆上，堆积起厚而均匀的一层，月光透过树的缝隙下来，白的，像是刚下过一场大雪，我们从上面踩过，脚下发出破裂的声音，还有一股什么味道，又恶心又浪漫。我们一直走到凌晨。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="四" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="四"&gt;四&lt;/h2&gt;
&lt;p&gt;禅师偷袭似的来到剧场路，又偷袭似的离开了，仿佛被人追杀一样，消失在一个宁谧的夜，等人们发觉他所租住的房间窗口的广告牌消失的时候，或许他已经离去多时了，除了几节没上完的幼儿编程课程，和保我们找到新工作的诺言，他什么也没带走。院里的人走形式似的咒骂几句没有被退还的课费，没人在乎这些嚣张而顽劣的小接班人们是否在放弃了电子琴、素描、围棋、跆拳道之后再多放弃一个编程。盖的网页项目写了一半后被他自己搁置了，听说又有最新动向，技术又要迭代，那么，与其将要在学成之前被淘汰，不如先自己把自己淘汰。我的情况也相近，我开发的python后端在尚未完成三分之一的时候就陷入了永无止境的漏洞地狱。我和盖最后只能相信，程式禅或许不渡无缘人。其实在剧场路，甚至曙光家苑，有三五天赋异禀者或是废寝忘食者，做出了微信小程序或是记事本小软件，挂在应用商店售卖，获得了极其不菲的收益以至于每周可以多吃一只瘦肉包，我和盖表面上恭维，私下里却嫉妒得很。也听说有人找到工作了，用禅师亲手操刀的简历，不知道去了哪里。&lt;/p&gt;
&lt;p&gt;禅师虽带走的不多，但留下的痕迹却不少，可是再后来就是我说过的那场大暴雨了，把程式禅的旧迹荡涤得干干净净。我总觉得这场雨定然在禅师的预料之中，他或许是察觉到大水将近，于是消失，又或是这一切在他来之前就已经被安排好了。&lt;/p&gt;
&lt;p&gt;曙光家苑逐渐涌现了种种流言，有人说禅师是个骗子，并迅速成为了共识，于是曾经买过课的家长，以及我这类上过课的成人，都成了其他人展示慈悲和机灵的工具，吃亏的人并不在乎，但是被说的多了又恼羞成怒，前去报警，无功而返。没多久，又有更新的说法孵化——禅师实际上是美国派来的特务。这种猜测很快席卷剧场路，越来越多的证据被人们挖掘出来。他会说英语，并乐于说英语，他狡诈，精通骗术，精通伪装，“简历渲染”就是最好的佐证，他常吃西式快餐，他说起中文来总装模做样，更重要的是，他无妻儿，更没有提起过其他家人…… 当时普天之下正是抓特务的热潮，众多的打入我方多年的特务在各地被揪了出来，剧场路自然也不能缺席！这场风波愈演愈烈，人们凭着记忆又画出了禅师的画像，摸出了禅师改过的简历作为证据，再去警察局，再去报案！一天晚上，陈妙上班前找到我，问我怎么看禅师是特务的新闻。&lt;/p&gt;
&lt;p&gt;我看着这位比我小了五岁还多的姑娘——不知道从什么时候开始，她的妆容变得越来越成熟了，外表看起来比高中就停止发育的我显得世故得多。&lt;/p&gt;
&lt;p&gt;此刻满院子的狂教徒们正寻找着禅师这位特务的同伙，我自然什么都不敢说，“等公安局的结果出来咱们不就知道了。”&lt;/p&gt;
&lt;p&gt;“大海，”陈妙喊我的名字，“我感觉……他不像是特务。”&lt;/p&gt;
&lt;p&gt;“你之前不是不喜欢他吗？”&lt;/p&gt;
&lt;p&gt;“不喜欢是不喜欢，我不喜欢他是觉得他有点……假惺惺，或者说猥琐。”&lt;/p&gt;
&lt;p&gt;我一时间不知道说什么，甚至感到有些窘——我自知我的身体、鼻头冒出来的黄澄澄的脂肪粒、以及肠道里的炎症，都在迅速地且明显地向禅师的方向靠近，且我还没有他的自信或是骄傲，我的精气神也是颓的。相比起来，陈妙是那样青春靓丽，而我是那样……猥琐。&lt;/p&gt;
&lt;p&gt;”我在职校的时候遇到过很多猥琐的人，他们都一无是处。“陈妙没有察觉到我的沉默，”这种人只是坏心思多一些，爱占小便宜，不可能是特务的。“&lt;/p&gt;
&lt;p&gt;我是愿意听到有人支持禅师的，不过陈妙的理由让我又不是很想心安理得地接受。我想，十七岁的少女陈妙已经有了特异的直觉，可能是嗅觉，性成熟的女人才能特有的嗅觉，能通过荷尔蒙的味道分辨男人。她必从禅师身上闻到了熟过头的腻，像是软塌塌的猕猴桃那样，一捏就会冒出水来，像是体内的过剩的雄激素，不会促进性征的勃发，却会造成脂溢性脱发。我没有理由不相信陈妙的嗅觉。我屏住呼吸，怕她嗅到我身上早衰的味儿。&lt;/p&gt;
&lt;p&gt;“但我不知道为什么，我总觉得，他好像也挺可怜的。”陈妙说。我没有觉得禅师可怜过，我只觉得自己可怜，陈妙应不是无稽之谈，她应该是又嗅到过什么。陈妙没有停留太久，她要去上班。&lt;/p&gt;
&lt;p&gt;禅师是特务的学说在等来警局的证实之前就没落了，因为一个人的到来，应该说归来。他就曾是曙光家苑的天才，被程式禅眷顾的幸运儿，拿着禅师给的简历前往外地打工的人，他回来了。他说，他理解了禅师为何放弃开发而选择成为老师，为何曾提到过颈椎病、肩周炎、腱鞘炎、静脉曲张和腰间盘突出，为何会懂推拿、人体工学、营养学和健康学。程式禅的有缘人可能依然不够有缘，他没有坚持下来，他说他的工资不高，不是行业的问题，是自己的问题，学无止境，学无止境。那禅师呢？他说在这座城的外面，程式的业内，偶尔有人知道禅师，他不是什么特务，以前确实是做外包的开发人员。至于是不是骗子，那就见仁见智了，简历都要渲染，别的事情渲染一下也合乎情理。&lt;/p&gt;
&lt;p&gt;随着外出者的归来，程式禅被彻底地证明和声乐、散打、健身等一样无效，闯入者离开了，出走者回来了，禅师和他的程式禅的一切就像曙光家苑打了一个嗝、放了一个屁，后面的日子接着过，以后还会打新的嗝，放新的屁，可能会更响。&lt;/p&gt;
&lt;p&gt;我也应该打一个嗝、放一个屁之后一样的回到我曾经的生活里的，整个曙光家苑都是这样的。可我好像回不去了。我没法集中注意力，也没法使我的精神懒散，我走在大街上，看到一个个匆忙的背影，总感觉那个人是禅师，陈妙，或者是我毕业以后就再也没有见过的中学同学。我发现，我有很久没有看那本神神叨叨的小说集了，很久没有在上班路上盯着别人的脚后跟看，很久没有闻到公司空调的酸臭味了，很久没有听到过楼上的盖的嘶吼了——哪怕我的每个白天都应是一样的。程式禅之前的生活成为了一段苦难，我脱离的时候竟然没有察觉，直到我即将再次步入的时候我才反应过来，好像程式禅确实给我的生活带来了些许明朗，虽然是一场假的梦幻。&lt;/p&gt;
&lt;p&gt;我打开曾经做了一半而荒废的python项目，这是我在禅师离开之后第一次打开我的代码编辑器。我想把那个项目做完了。外出归来者的经历告诉我，或许我做完了依然和程式禅无缘，可我并不想思考那么久的以后，我只想回到修行程式禅的日子里，最好这个项目我永远也写不完。&lt;/p&gt;
&lt;p&gt;我对着项目发呆，我竟一行代码都不认识。真的是我自己写的吗？我记得是这样的。我的记忆是真实的吗？我不知道。禅师和程式禅到底来过吗？我更不知道了，那场大雨冲走了一切，可能我昨天其实还在看那本疯癫的小说，地铁上盯着别人的脚后跟，闻得到公司空调的臭味，楼上的盖还在叫唤，只是我得了什么癔症，也可能是整个剧场路的群体癔症，很正常，在那本小说里这一点都不离奇。&lt;/p&gt;
&lt;p&gt;盖会和我一样吗？是盖最早引我见禅师的人，如果整个剧场路除了我，还有别人没法回到生活里，那就只能是盖了。我静静地等盖的音乐再次奏响。&lt;/p&gt;
&lt;p&gt;盖的低音炮响起来了——我感到巨大的悲恫，原来程式禅是只有我一人患上的精神疾患，与盖、与禅师、与大雨无关。可是，可是那些话就还在我的耳边！&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;优美优于丑陋，明了优于隐晦；&lt;/p&gt;
&lt;p&gt;简单优于复杂，复杂优于繁杂&lt;/p&gt;
&lt;p&gt;扁平优于嵌套，稀疏优于稠密。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我曾经听到，我依然听到，我确实听到。不是来自于我混沌的精神海，似乎来自于楼上的盖，他没在呐喊他的黑人音乐，他在呜噜呜噜的念经！我上楼，一如曾经无数次幻想的那样踢开他的破烂的房门而冲进房间里。&lt;/p&gt;
&lt;p&gt;盖或许是真的开始吸毒了，也可能他早就吸毒但我不了解，我不知道程式禅曾究竟给他带来过多少希望或是救赎。那场大雨来临的时候，盖的心里应该是舍不得的。&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;任何问题应有一种，&lt;/p&gt;
&lt;p&gt;且最好只有一种，&lt;/p&gt;
&lt;p&gt;显而易见的解决方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;盖还在念。我不想打扰他，悄悄退出了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="五" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="五"&gt;五&lt;/h2&gt;
&lt;p&gt;剧场路的一年四季是十分鲜明的，但我却数不出那场大雨之后又过去了多少个季节。盖越来越昏昏沉沉，一开始我和陈妙还时常去照看他，后来他自己也觉得过意不去，回了老家。陈妙分手了，她的美女室友也搬走了一阵子，不知去了哪里，换成了一个年纪大一些的女人，这位是一个真正的咖啡师。&lt;/p&gt;
&lt;p&gt;我还会在晚上去剧场路散步，就像禅师还在的时候的那个晚上。禅师离开后我们保留了这个习惯，于是在陈妙休息的晚上，我们三个散步，后来盖也离开了，于是我和陈妙两个人散步。我期盼着能再遇到一次小白花和无名的果实挂满树梢落满地面，但是我们一次都没遇到过。&lt;/p&gt;
&lt;p&gt;再后来，陈妙遇上了一位阔佬，阔佬要带陈妙去广东。我或许是有些喜欢陈妙的，但那也可能只是我的精神在流浪的时候临时找的窝棚。我和陈妙告别。我说，原来你才是程式禅的有缘人，禅师说世界是阔佬的，我称赞陈妙是极美丽的女人，如此才能主宰阔佬。阔佬应该不会长成我或是禅师这样的猥琐相吧，毕竟陈妙说猥琐相的人一无是处，阔佬不可能一无是处。陈妙让我保重，我不知道陈妙究竟会以什么样的身份跟随阔佬南下，是主宰阔佬抑或是依附阔佬，能否看到她想看的星空和日落，聊宇宙的秘密，聊《小王子》，我也让陈妙保重，我没有更多能说的话了。&lt;/p&gt;
&lt;p&gt;所以我一个人散步，我终于再看到剧场路的树开花了，我觉得我也到了要离开的时候了。&lt;/p&gt;
&lt;p&gt;我想我应该重拾python，也去往南方，去往禅师所去往的地方，去到兴兴轰轰的人间世，哪怕会颈椎病、肩周炎、静脉曲张和椎间盘突出，但我还年轻，我还可以学推拿、人体工学、营养学和健康学，学羽毛球。学无止境，学无止境。&lt;/p&gt;
&lt;p&gt;上回，我追寻程式禅失败了，这回，我依然做好失败的准备，毕竟程式禅不渡无缘人。&lt;/p&gt;
&lt;p&gt;但我已经想好了。&lt;/p&gt;
&lt;blockquote class="blockquote"&gt;
&lt;p&gt;任何问题应有一种，&lt;/p&gt;
&lt;p&gt;且最好只有一种，&lt;/p&gt;
&lt;p&gt;显而易见的解决方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我毅然决然奔向南方。&lt;/p&gt;
&lt;p&gt;至于在南方所发生的，那又是另一个故事了。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/程式禅/</guid>
<pubDate>Wed, 02 Aug 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>Unity?</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/Unity/</link>
<description> 






&lt;p&gt;&lt;strong&gt;Unity&lt;/strong&gt; is a cross-platform game engine developed by &lt;a href="https://en.wikipedia.org/wiki/Unity_Technologies"&gt;Unity Technologies&lt;/a&gt;, which is totally a piece of &lt;strong&gt;shit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Unity 毫无疑问是这个世界上最垃圾，最残忍，最邪恶，最无耻，最堕落的造物。它是如此令人作呕以至于我找不到任何适宜的类比，因为我所知晓的任何极尽污浊之物与之相比均显得可爱。我难以想象一个团队需要多么龌龊、变态、寡廉鲜耻、丧尽天良，才能开发出这样一个充满着剽窃、愚昧、劣质、敷衍、官僚、惺惺作态、自以为是的产品。而与Unity沆瀣一气的Plastic SCM更是只有过之而无不及，其对于git的取其糟粕去其精华，让它和unity更是交相辉映。Plastic应当尽早覆灭，尽早！&lt;/p&gt;
&lt;p&gt;Unity is an unequivocally repulsive, merciless, wicked, shameless, and morally bankrupt creation, plunging the depths of depravity in this world. It is so nauseating that no analogy I know of can even come close, for everything else pales in comparison. The very idea of a team sinking to such depths to develop a product riddled with plagiarism, ignorance, shoddiness, perfunctoriness, bureaucracy, hypocrisy, and self-righteousness is beyond my comprehension.&lt;/p&gt;
&lt;p&gt;Plastic SCM, in its collusion with Unity, takes the repugnance to new heights, rendering both Unity and Plastic an even uglier union. The obliteration of Plastic must become an urgent imperative, a necessity without delay, as its continued existence perpetuates the putridity of both itself and Unity.&lt;/p&gt;
&lt;p&gt;Unityは疑いなく、この世界で最もひどく、残酷で、邪悪で、恥知らずで、腐敗した創造物です。その存在は吐き気を催すほどで、適切な比喩を見つけることができません。私が知っている全てのものが比較にならないほど愛らしいです。私は、剽窃、無知、劣悪さ、手抜かり、官僚主義、偽善、高慢であるこの製品を開発するために、チームがどれほど汚れ、変態的で、不正直で、良心を持たない存在である必要があるのか想像するのが困難です。そしてUnityと結託しているPlastic SCMは、更にその一線を越えています。Plasticは早急に消え去るべきです、早急に！&lt;/p&gt;
&lt;p&gt;Unity est une création indiscutablement répulsive, impitoyable, méchante, sans honte et moralement corrompue, plongeant dans les abysses de la dépravation dans ce monde. C’est tellement écœurant que je ne connais aucune analogie qui puisse s’en approcher, car tout le reste pâlit en comparaison. L’idée même qu’une équipe puisse sombrer si bas pour développer un produit truffé de plagiat, d’ignorance, de médiocrité, de superficialité, de bureaucratie, d’hypocrisie et de suffisance est au-delà de ma compréhension.&lt;/p&gt;
&lt;p&gt;Plastic SCM, dans sa collusion avec Unity, porte la répugnance à de nouveaux sommets, rendant à la fois Unity et Plastic une union encore plus laide. L’éradication de Plastic doit devenir un impératif urgent, une nécessité sans délai, car sa survie continue perpétue la putridité de lui-même et d’Unity.&lt;/p&gt;
&lt;p&gt;阿门&lt;/p&gt;



 </description>
<category>日常</category>
<category>学习笔记</category>
<guid>https://midstream.cn/posts/Unity/</guid>
<pubDate>Thu, 20 Jul 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>bevy_rapier碰撞检测的源码拆解</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/bevy_rapier碰撞检测的源码拆解/</link>
<description> 






&lt;p&gt;啃了点源码记录一下。&lt;/p&gt;
&lt;section id="前言" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;项目需要搭建一个自定义的物理环境，选择使用bevy引擎进行可视化。&lt;/p&gt;
&lt;p&gt;因为依然处于开发阶段，在bevy引擎里，如果想实现物理效果，需要引入第三方库，其中最成熟的是dimforge的Rapier物理引擎，运行中Rapier会自动检测所有实体的碰撞并自动处理碰撞事件。&lt;/p&gt;
&lt;p&gt;然而，我需要的物理环境里有许多特殊的情况，要求特定的两个或数个实体之间不进行碰撞，如——有众多Joint链接的情况下，相互连接的个体之间可以穿透。举个例子就是，一列火车中，第一节和第二节车厢不会发生碰撞，但第一节和其他所有车厢的碰撞都是正常的。实现这种效果，就需要在rapier进行碰撞处理的时候对其进行自定义，Rapier提供了&lt;code&gt;PhysicsHook&lt;/code&gt;控件用于魔改碰撞处理，很友善。&lt;/p&gt;
&lt;p&gt;但是接下来就是问题出现的地方了。&lt;/p&gt;
&lt;p&gt;因为bevy和rapier的不断的持续更新与引擎本身的小众，互联网上本就不多的信息早已全部过时。bevy本身在今年三月份更新了0.10版本，bevy_rapier也在二月份的一个&lt;a href="https://github.com/dimforge/bevy_rapier/pull/323"&gt;pull request&lt;/a&gt;中更新了&lt;code&gt;PhysicsHook&lt;/code&gt;的获取信息的方式。于是，&lt;code&gt;BevyPhysicsHooks&lt;/code&gt;的使用方式甚至再没有例子可循，文档中也只有简短的说明而没有使用范例。&lt;/p&gt;
&lt;p&gt;那就只好去拆解bevy_rapier的源码了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="拆解" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="拆解"&gt;拆解&lt;/h2&gt;
&lt;p&gt;首先找到&lt;code&gt;RapierPhysicsPlugin&lt;/code&gt;的内容，这是为了让Rapier引擎能够以plugin的形式在bevy中运行的API。在&lt;code&gt;plugin::RapierPhysicsPlugin::build&lt;/code&gt;方法里我们看到这样一行&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb1" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb1-1"&gt;app&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;add_systems(&lt;/span&gt;
&lt;span id="cb1-2"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;Self&lt;/span&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;::&lt;/span&gt;get_systems(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;PhysicsSet::&lt;/span&gt;StepSimulation)&lt;/span&gt;
&lt;span id="cb1-3"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;in_base_set(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;PhysicsSet::&lt;/span&gt;StepSimulation)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-4"&gt;)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;我们可以发现&lt;code&gt;add_system&lt;/code&gt;将步骤模拟system加入了plugin, 而在方法&lt;code&gt;add_system&lt;/code&gt;中，三个方法被返回，其中两个&lt;code&gt;update_system&lt;/code&gt; 被要求在&lt;code&gt;step_simulation&lt;/code&gt;之前调用。&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb2" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb2-1"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;PhysicsSet::&lt;/span&gt;StepSimulation &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&amp;gt;&lt;/span&gt; (&lt;/span&gt;
&lt;span id="cb2-2"&gt;    &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;systems::step_simulation::&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;PhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-3"&gt;    &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;Events::&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;CollisionEvent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;::&lt;/span&gt;update_system&lt;/span&gt;
&lt;span id="cb2-4"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;before(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;systems::step_simulation::&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;PhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt;)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-5"&gt;    &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;Events::&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;ContactForceEvent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;::&lt;/span&gt;update_system&lt;/span&gt;
&lt;span id="cb2-6"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;before(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;systems::step_simulation::&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;PhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt;)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-7"&gt;)&lt;/span&gt;
&lt;span id="cb2-8"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;into_configs()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;step_simulation&lt;/code&gt;参数如下和部分内容如下，其中的&lt;code&gt;collision_events&lt;/code&gt;被送至&lt;code&gt;RapierContext::step_simulation&lt;/code&gt;继续处理&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb3" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb3-1"&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;pub&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;fn&lt;/span&gt; step_simulation&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;Hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt;(&lt;/span&gt;
&lt;span id="cb3-2"&gt;    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; context&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; ResMut&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;RapierContext&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-3"&gt;    config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; Res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;RapierConfiguration&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-4"&gt;    hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; StaticSystemParam&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;Hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-5"&gt;    time&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; Res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;Time&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-6"&gt;    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; sim_to_render_time&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; ResMut&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;SimulationToRenderTime&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-7"&gt;    collision_events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; EventWriter&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;CollisionEvent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-8"&gt;    contact_force_events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; EventWriter&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;ContactForceEvent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-9"&gt;    interpolation_query&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; Query&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;RapierRigidBodyHandle&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; TransformInterpolation)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-10"&gt;) &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;where&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-11"&gt;    Hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'static&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;+&lt;/span&gt; BevyPhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-12"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'w&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'s&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt; SystemParamItem&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'w&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'s&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; Hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;:&lt;/span&gt; BevyPhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-13"&gt;&lt;/span&gt;
&lt;span id="cb3-14"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 省略部分&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-15"&gt;&lt;/span&gt;
&lt;span id="cb3-16"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;physics_pipeline_active &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-17"&gt;        context&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;step_simulation(&lt;/span&gt;
&lt;span id="cb3-18"&gt;            config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;gravity&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-19"&gt;            config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;timestep_mode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-20"&gt;            &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;((collision_events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; contact_force_events))&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-21"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;hooks_adapter&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-22"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;time&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-23"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; sim_to_render_time&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-24"&gt;            &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(interpolation_query)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-25"&gt;        )&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb3-26"&gt;        context&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;deleted_colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;可以看到，&lt;code&gt;collision_events&lt;/code&gt;和&lt;code&gt;Hooks&lt;/code&gt;在&lt;code&gt;RapierContext::step_simulation&lt;/code&gt;中进行运算，值得注意的是，这里的&lt;code&gt;Hooks&lt;/code&gt;是&lt;code&gt;BevyPhysicsHooks&lt;/code&gt;类型而不是&lt;code&gt;PhysicsHooks&lt;/code&gt;, 前者多了一个&lt;code&gt;SystemParam&lt;/code&gt;作为supertrait。&lt;/p&gt;
&lt;p&gt;而在&lt;code&gt;RapierContext::step_simulation&lt;/code&gt;中，方法&lt;code&gt;self.pipeline.step&lt;/code&gt;被调用了。这里的&lt;code&gt;step&lt;/code&gt;方法已经不再是bevy_rapier2d里的方法了，而是rapier2d的方法。同时，在这一步里，之前一直被传递的碰撞事件也和其他事件一同被打包进&lt;code&gt;rapier2d::pipeline::event_handler&lt;/code&gt;里面。在rapier中非常重要的两个概念Broad Phrase和Narrow Phrase也将在&lt;code&gt;RapierContext&lt;/code&gt;被实例化的同时完成初始化，并且作为参数和events，hooks一同传递给&lt;code&gt;PhysicsPipeline::step&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;step&lt;/code&gt;中会一件一件地处理一帧中发生的所有事件，是rapier引擎的核心loop。在每个step和substep中都会经过一系列的方法调用，最终会调用至位于&lt;code&gt;geometry::narrow_phase::NarrowPhase&lt;/code&gt;的&lt;code&gt;compute_contacts&lt;/code&gt;方法，这就是一切碰撞计算发生的地方。在这里，hooks中可以自定义的三个方法会被依次调用，用于修改碰撞的计算方法。&lt;/p&gt;
&lt;p&gt;我在这里贴上完整源码：&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb4" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb4-1"&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;pub&lt;/span&gt;(&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;crate&lt;/span&gt;) &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;fn&lt;/span&gt; compute_contacts(&lt;/span&gt;
&lt;span id="cb4-2"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;self&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-3"&gt;    prediction_distance&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; Real&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-4"&gt;    bodies&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;RigidBodySet&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-5"&gt;    colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;ColliderSet&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-6"&gt;    impulse_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;ImpulseJointSet&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-7"&gt;    multibody_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;MultibodyJointSet&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-8"&gt;    modified_colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;[ColliderHandle]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-9"&gt;    hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;dyn&lt;/span&gt; PhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-10"&gt;    events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;dyn&lt;/span&gt; EventHandler&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-11"&gt;) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-12"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; modified_colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;is_empty() &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-13"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-14"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-15"&gt;&lt;/span&gt;
&lt;span id="cb4-16"&gt;    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; query_dispatcher &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;*&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;self&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;query_dispatcher&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-17"&gt;&lt;/span&gt;
&lt;span id="cb4-18"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &lt;/span&gt;&lt;span class="al" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;TODO&lt;/span&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;: don't iterate on all the edges.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-19"&gt;    &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;par_iter_mut!&lt;/span&gt;(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;self&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contact_graph&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;graph&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;edges)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;for_each(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;edge&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-20"&gt;        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; pair &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; edge&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;weight&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-21"&gt;        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; had_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;has_any_active_contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-22"&gt;        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; co1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;colliders[pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider1]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-23"&gt;        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; co2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;colliders[pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider2]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-24"&gt;&lt;/span&gt;
&lt;span id="cb4-25"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &lt;/span&gt;&lt;span class="al" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;TODO&lt;/span&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;: remove the `loop` once labels on blocks are supported.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-26"&gt;        &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;loop&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-27"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;changes&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;needs_narrow_phase_update()&lt;/span&gt;
&lt;span id="cb4-28"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;changes&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;needs_narrow_phase_update()&lt;/span&gt;
&lt;span id="cb4-29"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-30"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// No update needed for these colliders.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-31"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-32"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-33"&gt;&lt;/span&gt;
&lt;span id="cb4-34"&gt;            &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &lt;/span&gt;&lt;span class="al" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;TODO&lt;/span&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;: avoid lookup into bodies.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-35"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; rb_type1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;RigidBodyType::&lt;/span&gt;Fixed&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-36"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; rb_type2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;RigidBodyType::&lt;/span&gt;Fixed&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-37"&gt;&lt;/span&gt;
&lt;span id="cb4-38"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent1) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-39"&gt;                rb_type1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; bodies[co_parent1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;body_type&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-40"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-41"&gt;&lt;/span&gt;
&lt;span id="cb4-42"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent2) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-43"&gt;                rb_type2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; bodies[co_parent2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;body_type&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-44"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-45"&gt;&lt;/span&gt;
&lt;span id="cb4-46"&gt;            &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Deal with contacts disabled between bodies attached by joints.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-47"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; (&lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent1)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent2)) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; (&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-48"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; (_&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; joint) &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;in&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-49"&gt;                    impulse_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joints_between(co_parent1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; co_parent2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;/span&gt;
&lt;span id="cb4-50"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-51"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;joint&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contacts_enabled &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-52"&gt;                        pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-53"&gt;                        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-54"&gt;                    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-55"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-56"&gt;&lt;/span&gt;
&lt;span id="cb4-57"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;((_&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; mb_link)) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-58"&gt;                    multibody_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joint_between(co_parent1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; co_parent2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;/span&gt;
&lt;span id="cb4-59"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-60"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;mb_link&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joint&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contacts_enabled &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-61"&gt;                        pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-62"&gt;                        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-63"&gt;                    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-64"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-65"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-66"&gt;&lt;/span&gt;
&lt;span id="cb4-67"&gt;            &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Filter based on the rigid-body types.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-68"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_collision_types&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;test(rb_type1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; rb_type2)&lt;/span&gt;
&lt;span id="cb4-69"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_collision_types&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;test(rb_type1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; rb_type2)&lt;/span&gt;
&lt;span id="cb4-70"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-71"&gt;                pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-72"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-73"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-74"&gt;&lt;/span&gt;
&lt;span id="cb4-75"&gt;            &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Filter based on collision groups.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-76"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collision_groups&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;test(co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collision_groups) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-77"&gt;                pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-78"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-79"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-80"&gt;&lt;/span&gt;
&lt;span id="cb4-81"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; active_hooks &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_hooks &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-82"&gt;&lt;/span&gt;
&lt;span id="cb4-83"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; solver_flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; active_hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contains(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;ActiveHooks::&lt;/span&gt;FILTER_CONTACT_PAIRS) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-84"&gt;                &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; context &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PairFilterContext &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-85"&gt;                    bodies&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-86"&gt;                    colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-87"&gt;                    rigid_body1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-88"&gt;                    rigid_body2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-89"&gt;                    collider1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-90"&gt;                    collider2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-91"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-92"&gt;&lt;/span&gt;
&lt;span id="cb4-93"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(solver_flags) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;filter_contact_pair(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;context) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-94"&gt;                    solver_flags&lt;/span&gt;
&lt;span id="cb4-95"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-96"&gt;                    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// No contact allowed.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-97"&gt;                    pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-98"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-99"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-100"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-101"&gt;                &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;SolverFlags::&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;default&lt;/span&gt;()&lt;/span&gt;
&lt;span id="cb4-102"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-103"&gt;&lt;/span&gt;
&lt;span id="cb4-104"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_groups&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;test(co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_groups) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-105"&gt;                solver_flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;remove(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;SolverFlags::&lt;/span&gt;COMPUTE_IMPULSES)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-106"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-107"&gt;&lt;/span&gt;
&lt;span id="cb4-108"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;changes&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contains(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;ColliderChanges::&lt;/span&gt;SHAPE)&lt;/span&gt;
&lt;span id="cb4-109"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;changes&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contains(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;ColliderChanges::&lt;/span&gt;SHAPE)&lt;/span&gt;
&lt;span id="cb4-110"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-111"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// The shape changed so the workspace is no longer valid.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-112"&gt;                pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;workspace &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;None&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-113"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-114"&gt;&lt;/span&gt;
&lt;span id="cb4-115"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; pos12 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;pos&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;inv_mul(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;pos)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-116"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; _ &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; query_dispatcher&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contact_manifolds(&lt;/span&gt;
&lt;span id="cb4-117"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;pos12&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-118"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;*&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;shape&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-119"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;*&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;shape&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-120"&gt;                prediction_distance&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-121"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;manifolds&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-122"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;workspace&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-123"&gt;            )&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-124"&gt;&lt;/span&gt;
&lt;span id="cb4-125"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; friction &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;CoefficientCombineRule::&lt;/span&gt;combine(&lt;/span&gt;
&lt;span id="cb4-126"&gt;                co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;friction&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-127"&gt;                co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;friction&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-128"&gt;                co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;friction_combine_rule &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-129"&gt;                co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;friction_combine_rule &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-130"&gt;            )&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-131"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; restitution &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;CoefficientCombineRule::&lt;/span&gt;combine(&lt;/span&gt;
&lt;span id="cb4-132"&gt;                co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;restitution&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-133"&gt;                co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;restitution&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-134"&gt;                co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;restitution_combine_rule &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-135"&gt;                co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;material&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;restitution_combine_rule &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-136"&gt;            )&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-137"&gt;&lt;/span&gt;
&lt;span id="cb4-138"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; zero &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; RigidBodyDominance(&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// The value doesn't matter, it will be MAX because of the effective groups.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-139"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; dominance1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co1&lt;/span&gt;
&lt;span id="cb4-140"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;/span&gt;
&lt;span id="cb4-141"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; bodies[p1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;dominance)&lt;/span&gt;
&lt;span id="cb4-142"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;unwrap_or(zero)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-143"&gt;            &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; dominance2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co2&lt;/span&gt;
&lt;span id="cb4-144"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;/span&gt;
&lt;span id="cb4-145"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; bodies[p2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle]&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;dominance)&lt;/span&gt;
&lt;span id="cb4-146"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;unwrap_or(zero)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-147"&gt;&lt;/span&gt;
&lt;span id="cb4-148"&gt;            pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;has_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;false&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-149"&gt;&lt;/span&gt;
&lt;span id="cb4-150"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; manifold &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;in&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;manifolds &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-151"&gt;                &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; world_pos1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;subshape_pos1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;prepend_to(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;pos)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-152"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-153"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;rigid_body1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-154"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;rigid_body2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-155"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; solver_flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-156"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;relative_dominance &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; dominance1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;effective_group(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;rb_type1)&lt;/span&gt;
&lt;span id="cb4-157"&gt;                    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt; dominance2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;effective_group(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;rb_type2)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-158"&gt;                manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;normal &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; world_pos1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;local_n1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-159"&gt;&lt;/span&gt;
&lt;span id="cb4-160"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Generate solver contacts.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-161"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; (contact_id&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; contact) &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;in&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;points&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;iter()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;enumerate() &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-162"&gt;                    &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;assert!&lt;/span&gt;(&lt;/span&gt;
&lt;span id="cb4-163"&gt;                        contact_id &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;::&lt;/span&gt;&lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;MAX&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;usize&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-164"&gt;                        &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"A contact manifold cannot contain more than 255 contacts currently."&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-165"&gt;                    )&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-166"&gt;&lt;/span&gt;
&lt;span id="cb4-167"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;dist &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; prediction_distance &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-168"&gt;                        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Generate the solver contact.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-169"&gt;                        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; solver_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; SolverContact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-170"&gt;                            contact_id&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; contact_id &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;as&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;u8&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-171"&gt;                            point&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; world_pos1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;local_p1&lt;/span&gt;
&lt;span id="cb4-172"&gt;                                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;+&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;normal &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;dist &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;2.0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-173"&gt;                            dist&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;dist&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-174"&gt;                            friction&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-175"&gt;                            restitution&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-176"&gt;                            tangent_velocity&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;Vector::&lt;/span&gt;zeros()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-177"&gt;                            is_new&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; contact&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;impulse &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0.0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-178"&gt;                        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-179"&gt;&lt;/span&gt;
&lt;span id="cb4-180"&gt;                        manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;push(solver_contact)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-181"&gt;                        pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;has_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;true&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-182"&gt;                    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-183"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-184"&gt;&lt;/span&gt;
&lt;span id="cb4-185"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Apply the user-defined contact modification.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-186"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; active_hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contains(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;ActiveHooks::&lt;/span&gt;MODIFY_SOLVER_CONTACTS) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-187"&gt;                    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_solver_contacts &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-188"&gt;                        &lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;std::mem::&lt;/span&gt;replace(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;Vec&lt;/span&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;::&lt;/span&gt;new())&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-189"&gt;                    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_user_data &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;user_data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-190"&gt;                    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_normal &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;normal&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-191"&gt;&lt;/span&gt;
&lt;span id="cb4-192"&gt;                    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; context &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; ContactModificationContext &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-193"&gt;                        bodies&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-194"&gt;                        colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-195"&gt;                        rigid_body1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-196"&gt;                        rigid_body2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;map(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-197"&gt;                        collider1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-198"&gt;                        collider2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;collider2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-199"&gt;                        manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-200"&gt;                        solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-201"&gt;                        normal&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_normal&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-202"&gt;                        user_data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; modifiable_user_data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-203"&gt;                    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-204"&gt;&lt;/span&gt;
&lt;span id="cb4-205"&gt;                    hooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;modify_solver_contacts(&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;mut&lt;/span&gt; context)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-206"&gt;&lt;/span&gt;
&lt;span id="cb4-207"&gt;                    manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;solver_contacts &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; modifiable_solver_contacts&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-208"&gt;                    manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;normal &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; modifiable_normal&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-209"&gt;                    manifold&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;user_data &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; modifiable_user_data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-210"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-211"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-212"&gt;&lt;/span&gt;
&lt;span id="cb4-213"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-214"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-215"&gt;&lt;/span&gt;
&lt;span id="cb4-216"&gt;        &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; active_events &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_events &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;|&lt;/span&gt; co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;active_events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-217"&gt;&lt;/span&gt;
&lt;span id="cb4-218"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;has_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; had_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-219"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; active_events&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contains(&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;ActiveEvents::&lt;/span&gt;COLLISION_EVENTS) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-220"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;has_any_active_contact &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-221"&gt;                    pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;emit_start_event(bodies&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; events)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-222"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-223"&gt;                    pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;emit_stop_event(bodies&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; colliders&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; events)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-224"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-225"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-226"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-227"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb4-228"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;然后呢？&lt;/p&gt;
&lt;p&gt;然后我就看到了这一段：&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb5" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb5-1"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Deal with contacts disabled between bodies attached by joints.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-2"&gt;&lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; (&lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent1)&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;(co_parent2)) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; (&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;co2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;parent) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-3"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; (_&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; joint) &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;in&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-4"&gt;        impulse_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joints_between(co_parent1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; co_parent2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;/span&gt;
&lt;span id="cb5-5"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-6"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;joint&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contacts_enabled &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-7"&gt;            pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-8"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-9"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-10"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-11"&gt;&lt;/span&gt;
&lt;span id="cb5-12"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;let&lt;/span&gt; &lt;span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;"&gt;Some&lt;/span&gt;((_&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; mb_link)) &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-13"&gt;        multibody_joints&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joint_between(co_parent1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; co_parent2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;handle)&lt;/span&gt;
&lt;span id="cb5-14"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-15"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;mb_link&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;joint&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;data&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;contacts_enabled &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-16"&gt;            pair&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;clear()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-17"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt; &lt;span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;"&gt;'emit_events&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-18"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-19"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb5-20"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;淦。&lt;/p&gt;
&lt;p&gt;原来，在joint里有一个flag叫做&lt;code&gt;contacts_enabled&lt;/code&gt;，这段代码会专门对这个flag进行判断，如果打开了，那么joint连接的两端的collider之间的碰撞就会在计算之前从query中被删除。。。。。。。。。。&lt;/p&gt;
&lt;p&gt;然后，好像我不需要用hooks了。只要在建立连接的时候把这个开关关上就好了。。。。。。&lt;/p&gt;
&lt;p&gt;可是为什么joint的&lt;a href="https://rapier.rs/docs/user_guides/bevy_plugin/joints"&gt;User Guides&lt;/a&gt;里完全没讲还有这个功能。。。。。。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="别的" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="别的"&gt;别的&lt;/h2&gt;
&lt;p&gt;虽然现在有更简单的方法来实现我需要的功能了，但是新的hook到底该如何使用呢？&lt;/p&gt;
&lt;p&gt;其实很简单，而且比以前更加简单，只需要将一个实现了hook内部方法的struct添加到&lt;code&gt;SystemParam&lt;/code&gt;就行了。&lt;/p&gt;
&lt;p&gt;再就是，记得在添加&lt;code&gt;RapierPhysicsPlugin&lt;/code&gt;到bevy app的时候，把hook注册进去。因为plugin的定义是这样的：&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb6" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode rust code-with-copy"&gt;&lt;code class="sourceCode rust"&gt;&lt;span id="cb6-1"&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;pub&lt;/span&gt; &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;struct&lt;/span&gt; RapierPhysicsPlugin&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;PhysicsHooks &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; ()&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb6-2"&gt;    physics_scale&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;f32&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb6-3"&gt;    default_system_setup&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;bool&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb6-4"&gt;    _phantom&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; PhantomData&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt;PhysicsHooks&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb6-5"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;PhysicsHooks&lt;/code&gt;竟然作为是一个类型给到&lt;code&gt;RapierPhysicsPlugin&lt;/code&gt;的，一开始我忽视了这一点，以为只要注册了&lt;code&gt;SystemParam&lt;/code&gt;就可以被rapier获取到，浪费了许多时间。&lt;/p&gt;
&lt;p&gt;另外，在浏览hooks的源码的过程中还发现，在&lt;code&gt;physics_hooks::ContactModificationContext&lt;/code&gt;中竟然很贴心的内置了一个方法&lt;code&gt;update_as_oneway_platform&lt;/code&gt;，可以直接在hook中使用，让复杂繁琐的单项平台可以可以几行搞定。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>日常</category>
<category>学习笔记</category>
<guid>https://midstream.cn/posts/bevy_rapier碰撞检测的源码拆解/</guid>
<pubDate>Thu, 29 Jun 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>员工之二</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/员工之二/</link>
<description> 






&lt;p&gt;我也未曾想过，《员工》一文会有续集，所以《员工》为《员工》而非《员工之一》。&lt;/p&gt;
&lt;p&gt;但是施放丢了，他就那样离奇地消失在了入职前一天的夜里。&lt;/p&gt;
&lt;p&gt;我去寻找施放的下落。&lt;/p&gt;
&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;从煤气公司出发&lt;/p&gt;
&lt;p&gt;前往微普通的九十九道高墙&lt;/p&gt;
&lt;p&gt;我知道&lt;/p&gt;
&lt;p&gt;他的背影最后一次出现在一个男人的瞳孔&lt;/p&gt;
&lt;p&gt;那晚他们被困在夜色的小牢笼里&lt;/p&gt;
&lt;p&gt;我翻过九十九道墙&lt;/p&gt;
&lt;p&gt;看到摩天的塔&lt;/p&gt;
&lt;p&gt;我在一个螺丝钉的孔洞里找到了男人&lt;/p&gt;
&lt;p&gt;男人满眼彷徨&lt;/p&gt;
&lt;p&gt;他在螺丝钉的洞里往地下挖掘&lt;/p&gt;
&lt;p&gt;地震要来了，我听见男人说&lt;/p&gt;
&lt;p&gt;高塔会变成废墟，城墙会成为遗迹&lt;/p&gt;
&lt;p&gt;只有地下的宫殿才能幸免&lt;/p&gt;
&lt;p&gt;可是地下不应该更危险吗？&lt;/p&gt;
&lt;p&gt;男人摇头&lt;/p&gt;
&lt;p&gt;那里是地震的来源，也是台风的眼&lt;/p&gt;
&lt;p&gt;我看向男人挖掘的隧道&lt;/p&gt;
&lt;p&gt;你真的能到达晴朗的风眼？&lt;/p&gt;
&lt;p&gt;男人不知道&lt;/p&gt;
&lt;p&gt;那就远航吧，我劝男人&lt;/p&gt;
&lt;p&gt;等地震过去&lt;/p&gt;
&lt;p&gt;你一定要乘着你的独木舟归来&lt;/p&gt;
&lt;p&gt;男人邀请我一同远去&lt;/p&gt;
&lt;p&gt;可我还要寻找施放&lt;/p&gt;
&lt;p&gt;男人说&lt;/p&gt;
&lt;p&gt;天台那晚，施放走向大山的方向&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;大山是施放的家乡&lt;/p&gt;
&lt;p&gt;他在这里休憩&lt;/p&gt;
&lt;p&gt;也在这里堕入迷惘&lt;/p&gt;
&lt;p&gt;山民不再用炙烤的豚设宴&lt;/p&gt;
&lt;p&gt;施放已沦为魍魉&lt;/p&gt;
&lt;p&gt;山民说，他骗走了我的儿子和猪&lt;/p&gt;
&lt;p&gt;他逃难般归来，被逐之而去以棍棒&lt;/p&gt;
&lt;p&gt;山民的儿子带走了自己和施放留下的钥匙扣&lt;/p&gt;
&lt;p&gt;那上面有微普通的徽章&lt;/p&gt;
&lt;p&gt;他在为自己的儿子哭泣&lt;/p&gt;
&lt;p&gt;更为了作物和牲畜&lt;/p&gt;
&lt;p&gt;今年不是丰收年&lt;/p&gt;
&lt;p&gt;唯一的种猪也特立独行&lt;/p&gt;
&lt;p&gt;它长满黑色鬣毛的身体发硬发僵&lt;/p&gt;
&lt;p&gt;胯下的长鞭却逐渐枯萎&lt;/p&gt;
&lt;p&gt;它粗壮的颈动脉被利刃切开&lt;/p&gt;
&lt;p&gt;人们却发现它的排骨硬得无法入口&lt;/p&gt;
&lt;p&gt;我给予山民真挚的祝福&lt;/p&gt;
&lt;p&gt;别舍弃你的猪肋，别泯灭了你的希望！&lt;/p&gt;
&lt;p&gt;你的儿子会归来&lt;/p&gt;
&lt;p&gt;带来财富和丰收&lt;/p&gt;
&lt;p&gt;会有沃土&lt;/p&gt;
&lt;p&gt;会有软肋&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;山民说施放逃往边疆&lt;/p&gt;
&lt;p&gt;那里有奇险的山路和豺狼&lt;/p&gt;
&lt;p&gt;也有遍地黄金的传说和神话&lt;/p&gt;
&lt;p&gt;市集里聚满巨富商贾和走投无路者&lt;/p&gt;
&lt;p&gt;一朝万劫不复，一朝腾达飞黄&lt;/p&gt;
&lt;p&gt;施放啊&lt;/p&gt;
&lt;p&gt;你千万别在这里堵上你的性命&lt;/p&gt;
&lt;p&gt;穿着袍子的人拉住我&lt;/p&gt;
&lt;p&gt;是骗子或是巫医&lt;/p&gt;
&lt;p&gt;我用珍贵的泉水&lt;/p&gt;
&lt;p&gt;找他换取施放的消息&lt;/p&gt;
&lt;p&gt;他桀桀地笑&lt;/p&gt;
&lt;p&gt;你说的人早已离开这里&lt;/p&gt;
&lt;p&gt;他输的一塌糊涂&lt;/p&gt;
&lt;p&gt;已经回到镇里贩卖煤气&lt;/p&gt;
&lt;p&gt;可是他又如何能回到公司呢&lt;/p&gt;
&lt;p&gt;哪怕他曾经是上进的员工&lt;/p&gt;
&lt;p&gt;他为了微普通葬送了前程&lt;/p&gt;
&lt;p&gt;他的档案有抹不去的污点&lt;/p&gt;
&lt;p&gt;更何况&lt;/p&gt;
&lt;p&gt;微普通都大厦将倾&lt;/p&gt;
&lt;p&gt;哪还有公司愿意接纳施放&lt;/p&gt;
&lt;p&gt;匆匆的旅人啊&lt;/p&gt;
&lt;p&gt;我一直追不上施放的步伐&lt;/p&gt;
&lt;p&gt;感谢您的慷慨！&lt;/p&gt;
&lt;p&gt;我听到骗子或是巫医的声音&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;穿过沙漠&lt;/p&gt;
&lt;p&gt;我回到镇子上&lt;/p&gt;
&lt;p&gt;存在镇的人们聚集在大街&lt;/p&gt;
&lt;p&gt;大家在讨论一种慢性病&lt;/p&gt;
&lt;p&gt;或许也不是病&lt;/p&gt;
&lt;p&gt;而是身体的自我保护&lt;/p&gt;
&lt;p&gt;你会变得迷茫&lt;/p&gt;
&lt;p&gt;他们说&lt;/p&gt;
&lt;p&gt;然后会变得疯狂&lt;/p&gt;
&lt;p&gt;你奔跑，你追逐&lt;/p&gt;
&lt;p&gt;你总趔趄&lt;/p&gt;
&lt;p&gt;你像走肉行尸&lt;/p&gt;
&lt;p&gt;你慢慢的走不动了&lt;/p&gt;
&lt;p&gt;你坐下来歇息&lt;/p&gt;
&lt;p&gt;你任由他人奚落&lt;/p&gt;
&lt;p&gt;你任由坐吃山空&lt;/p&gt;
&lt;p&gt;然后&lt;/p&gt;
&lt;p&gt;你感觉到大地的抚慰&lt;/p&gt;
&lt;p&gt;你想成为一棵树&lt;/p&gt;
&lt;p&gt;把腿扎根到湿润的泥土里&lt;/p&gt;
&lt;p&gt;倚靠着青山发呆&lt;/p&gt;
&lt;p&gt;于是你真的往树的方向进化&lt;/p&gt;
&lt;p&gt;你的脚趾甲显现出木头的质感和色泽&lt;/p&gt;
&lt;p&gt;木头向着里也向着外生长&lt;/p&gt;
&lt;p&gt;你的下肢都变成了木头&lt;/p&gt;
&lt;p&gt;木头逐渐弯曲形变&lt;/p&gt;
&lt;p&gt;又变成一片片木板，把你包围&lt;/p&gt;
&lt;p&gt;你想变成一棵树&lt;/p&gt;
&lt;p&gt;却变成了一个桶&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;穿街走巷&lt;/p&gt;
&lt;p&gt;我在镇里寻找施放的痕迹&lt;/p&gt;
&lt;p&gt;我遇到一位在垃圾桶里翻找食物的年轻人&lt;/p&gt;
&lt;p&gt;于是我用一顿午餐换取施放的消息&lt;/p&gt;
&lt;p&gt;你说的人我认识&lt;/p&gt;
&lt;p&gt;我多么希望他还在这里住居&lt;/p&gt;
&lt;p&gt;他舍弃许多腐烂的蔬菜&lt;/p&gt;
&lt;p&gt;没有他我甚至无法继续拾荒&lt;/p&gt;
&lt;p&gt;他每日买进新鲜的蔬菜&lt;/p&gt;
&lt;p&gt;再把蔬菜放进冰箱&lt;/p&gt;
&lt;p&gt;除了蔬菜还有鸡蛋牛奶和猪肋&lt;/p&gt;
&lt;p&gt;只有丰满的食材才能压制他的惊慌&lt;/p&gt;
&lt;p&gt;可是他不会烹饪&lt;/p&gt;
&lt;p&gt;只能任由冰箱里的食物慢慢腐烂&lt;/p&gt;
&lt;p&gt;他会补充新的&lt;/p&gt;
&lt;p&gt;欺骗自己生活于正常&lt;/p&gt;
&lt;p&gt;我感到荒谬&lt;/p&gt;
&lt;p&gt;可是他为什么要这样？&lt;/p&gt;
&lt;p&gt;拾荒者说&lt;/p&gt;
&lt;p&gt;他不仅购入食材&lt;/p&gt;
&lt;p&gt;每日也有必须的行程&lt;/p&gt;
&lt;p&gt;他会带上他的电脑&lt;/p&gt;
&lt;p&gt;日日去咖啡馆里端坐&lt;/p&gt;
&lt;p&gt;那里是公司员工的聚集地&lt;/p&gt;
&lt;p&gt;他自费过着公司员工的生活&lt;/p&gt;
&lt;p&gt;如今他已经离开&lt;/p&gt;
&lt;p&gt;没人知道去了哪里&lt;/p&gt;
&lt;p&gt;这就是我知道的全部&lt;/p&gt;
&lt;p&gt;如果可以&lt;/p&gt;
&lt;p&gt;我希望您能继续&lt;/p&gt;
&lt;p&gt;资助我一顿晚宴&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-5"&gt;6&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;匆匆的旅人啊&lt;/p&gt;
&lt;p&gt;我在存在镇流浪&lt;/p&gt;
&lt;p&gt;大风吹过&lt;/p&gt;
&lt;p&gt;我看到一只木桶&lt;/p&gt;
&lt;p&gt;木桶骨碌碌的滚动&lt;/p&gt;
&lt;p&gt;里面住着一个人&lt;/p&gt;
&lt;p&gt;他手拿一柄锤子&lt;/p&gt;
&lt;p&gt;控制着方向&lt;/p&gt;
&lt;p&gt;人们说&lt;/p&gt;
&lt;p&gt;他是住在木桶里的放浪形骸者&lt;/p&gt;
&lt;p&gt;他看透了人生&lt;/p&gt;
&lt;p&gt;抛却功名利禄&lt;/p&gt;
&lt;p&gt;人们又说&lt;/p&gt;
&lt;p&gt;他是得了怪病的失败者&lt;/p&gt;
&lt;p&gt;想要成为一棵树&lt;/p&gt;
&lt;p&gt;却变成了一个桶&lt;/p&gt;
&lt;p&gt;人们还说&lt;/p&gt;
&lt;p&gt;他是不知廉耻的疯癫者&lt;/p&gt;
&lt;p&gt;他衣不蔽体&lt;/p&gt;
&lt;p&gt;在木桶里旁若无人地手淫&lt;/p&gt;
&lt;p&gt;可是我认识他&lt;/p&gt;
&lt;p&gt;施放！&lt;/p&gt;
&lt;p&gt;我凯旋高歌&lt;/p&gt;
&lt;p&gt;施放啊施放！&lt;/p&gt;
&lt;p&gt;你是施放，你怎么落魄到住进木桶！&lt;/p&gt;
&lt;p&gt;你是施放，你怎么豁达到住进木桶！&lt;/p&gt;
&lt;p&gt;我看到施放充满泪水的眼眶&lt;/p&gt;
&lt;p&gt;还有他嘴角痴愚的傻笑&lt;/p&gt;
&lt;p&gt;他的双腿已经化作木质&lt;/p&gt;
&lt;p&gt;成为了他居住的木桶了&lt;/p&gt;
&lt;p&gt;施放啊施放&lt;/p&gt;
&lt;p&gt;你也曾是一名上进的员工&lt;/p&gt;
&lt;p&gt;你也曾拥有自己的梦&lt;/p&gt;
&lt;p&gt;可是&lt;/p&gt;
&lt;p&gt;或许木桶本就是你最好的归宿&lt;/p&gt;
&lt;p&gt;虽然没有帝王亚历山大向你躬身&lt;/p&gt;
&lt;p&gt;也没有信徒向你谄媚&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-6" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-6"&gt;7&lt;/h2&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;
&lt;p&gt;我彷徨着不知去向&lt;/p&gt;
&lt;p&gt;施放曾经踏上过的路再被我踏上&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/员工之二/</guid>
<pubDate>Sat, 10 Jun 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>往曼德拉去</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/往曼德拉去/</link>
<description> 






&lt;p&gt;写在前面：英语课的习作，剽窃自修新羽《她要去阆中》一文。&lt;/p&gt;
&lt;section id="section" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section"&gt;1&lt;/h3&gt;
&lt;p&gt;Leo stared at the world map that was spread out on the ground but didn’t know where to put his eyes. He never found the world so big until this moment. His eyes ran all over from the right edge to the left of the map, and stop at the west coast of America – that’s where he was.&lt;/p&gt;
&lt;p&gt;He didn’t live in the center of the world anymore, on the contrary, he was actually sitting at the edge of the world–the world map was cut through the middle of the Pacific Ocean. Leo felt funny coming up with such an absurd thought. It was the first time Leo considering to go somewhere else seriously. Leo used to be somewhere else, his parents took him to Europe when he was young, and he has been to the east coast several times, but he never feels it “somewhere else”. The distance between his home to everywhere else is just a sleep on the plane.&lt;/p&gt;
&lt;p&gt;He remembers, once Catherine sat by the window and looked outside. He asked her what she was looking at. She told him that she was imagining a city. What kind of city, Leo asked. A city that has the same distance to everywhere else, and the distance is counted in time rather than length, she said, still looking outside. In time? Yes, everybody needs to spend the same amount of time to reach that city, no matter where they depart, or what vehicle they take. Kids will like it, he commented. Catherine didn’t reply.&lt;/p&gt;
&lt;p&gt;Leo didn’t know why he suddenly recalled all of this, but he felt like he can understand Catherine’s city a little bit more now. What if, that magical city is years away? It’s horrible to sleep on a plane for years. He started to think of Marco Polo, Columbus, and Ibn Battuta. Maybe the world map is too common for Leo to ever look at it carefully.&lt;/p&gt;
&lt;p&gt;Leo took a step back, making sure the map is spread out smoothly, then took a dart. He was nervous. He never throw a dart before. What if the dart lands in the center of the Atlantic? Does that mean he must go there? But there must be nothing in the center of the ocean. What if, even worse, the dart lands on the south pole? That is unreachable, the distance to the south pole is infinity. Or, what if, the dart just land exactly at his home? If he doesn’t need to go anywhere, what is the point of doing all of this?&lt;/p&gt;
&lt;p&gt;So, how does Catherine avoid those problems when she throws the dart? No, she is not him. She wouldn’t plan this shoot ahead and buy the map and the dart for it. She wouldn’t be nervous before the shoot. She just wouldn’t think about the possibility of the dart hitting somewhere unreachable. There is no place unreachable for her, Leo thought of their past.&lt;/p&gt;
&lt;p&gt;That was a summer evening, Leo was on his way back home. He rented an apartment close enough to the company to walk home every day.&lt;/p&gt;
&lt;p&gt;“LEE—OHH—” He heard someone’s voice, far and wispy. Leo stopped and looked around.&lt;/p&gt;
&lt;p&gt;“LOOK—UP—” The voice again. He looked up, found himself stood in front of a belltower. A tiny slender figure was at the top of the tower, next to the spire. Although the shape was blurred in the night, Leo still recognized Catherine immediately. She held the spire with one hand, leaned forward, kept waving her hand to Leo.&lt;/p&gt;
&lt;p&gt;“What an amazing coincidence that you just passed by the tower.” Catherine was still very excited after they got back home. She told Leo that she threw a dart towards the photo of the city and tried to go wherever the dart hits. And the dart just hit the peak of the belltower. “And you guess what? The sunset up there was spectacular!” Catherine said, “The city was submerged by orange fog, with only several black tower spikes emersed. That was the most beautiful sunset I have ever seen in my whole life!”&lt;/p&gt;
&lt;p&gt;Leo was angry then, he said climbing a tower is dangerous, and climbing a tower just because the dart hit the tower top in a photo is not only dangerous but also ridiculous.&lt;/p&gt;
&lt;p&gt;“Ridiculous is amazing!” Catherine said. “Imagine you throw a dart to a world map to decide your travel destination.”&lt;/p&gt;
&lt;p&gt;But Leo couldn’t understand the amazingness of ridiculous at that time. After Catherine fall asleep, he spent two hours that night searching on internet about the legality of climbing outside the tower roof without been proved.&lt;/p&gt;
&lt;p&gt;Leo, you shouldn’t think too much, Leo told himself. Took a deep breath, covered the eyes, rised the hand, shoot! Leo heard the sound of dart hitting the fabric. Landed inside the world, he knew. But he still found it hard to remove his hand from eyes. Why he fear the uncertainty so much? He moved his hand little by little. Atlantic shows up firstly, no dart on it. Moving the eyesight leftwards, South America, clean, and North America, also clean. Leo felt a mix of disappointment and relief. He finally looked towards right side, the dart hits somewhere green at South East Asia.&lt;/p&gt;
&lt;p&gt;A reachable place, far but not that far, nothing unpredictable happens. Will Catherine be there? He doesn’t know. Catherine told him nothing when she left three month ago, and he still feels it like a dream, or a drama.&lt;/p&gt;
&lt;p&gt;Just on the weekend before Catherine’s leaving, they were still indulged in their inseparable love. They went to the furniture store, excitingly discussing how to change the room setups, and then they drove to Walmart and bought groceries enough for weeks. Every sign reveals that they will keep living together, at least for months.&lt;/p&gt;
&lt;p&gt;That night, Leo was back from work late, laid down by Catherine’s side, and was reading a magazine. Catherine told Leo that she was going somewhere. Leo approved, even without asking where it is. Catherine reclaimed, she was going somewhere, far.&lt;/p&gt;
&lt;p&gt;“So, you are going on a trip? It’s said to be a warm weekend for the next few days, but I might not be able to go with you, I have a layout design to submit on Monday,” Leo said. “Oh, maybe you can call Ann if you want, then you gonna have fun.”&lt;/p&gt;
&lt;p&gt;Catherine didn’t say anything else, she turned over and bestride him, kissed him hard…… In the following several months, Leo recalled this moment hundred times, feeling her fervency was a mercy on his dullness.&lt;/p&gt;
&lt;p&gt;Catherine left the next day, and hasn’t been heard of since.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;… Mandalay was founded in 1857 by King Mindon, replacing Amarapura as the new royal capital of the Konbaung dynasty …… The city is the economic and religious hub of upper Myanmar …… The city is centred on the royal palace, and has wide avenues filled with bicycles and motorcycles …… Mandalay is known for its millionaires, its monks (half of the country’s monks live in Mandalay and surrounding areas) and its cultural diversity …&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Leo clicked the picture on the right side of Wiki, a photo of a huge golden buddha took all his screen. He clicked next picture, then a road full of motorcycles showed up. Mandalay, Buddhism, Monks, King Mindon, Konbaung dynasty …… all of these makes Leo dizzy. He leaned back and wipes his face with both hands.&lt;/p&gt;
&lt;p&gt;“…… we can find that the product department is currently dealing with too many requirements ……” Leo closes the picture and looks up, the meeting is still going on. He never finds monthly meetings this long, maybe he is always the active one. But now Leo doesn’t need to listen to anything in this meeting anymore.&lt;/p&gt;
&lt;p&gt;Leo hasn’t told anyone about his plan, even his good friends. Maybe this plan is too ridiculous, maybe he is afraid of something. He looks back at Wiki.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;… Mandalay located on the east bank of the Irrawaddy River, 631 km (392 miles) (Road Distance) north of Yangon, the city has a population of 1,532,000 …… The discharge of Irrawaddy River is of 32,600 cubic meters …&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Wait, what? Leo suddenly recalled a course project he did in middle school, students were asked to visualize US cities’ populations, and he clearly remembers there are only 9 cities in America that have a population of more than 1 million! Leo quickly returned to the picture of the street, where bicycles and motorcycles are jammed together and monks walk across with bare feet. This city is as big as Phoenix.&lt;/p&gt;
&lt;p&gt;The picture and the data give Leo a feeling of a magical land. He takes a deep breath, feeling the river he never heard of might also not be that simple. Leo quickly searches “Mississippi discharge”, then the result shows, &lt;em&gt;16,792 cubic meters&lt;/em&gt;. Leo counted the number several times, and finally accept the reality. At a secret place, there is a secret river twice as big as Mississippi, and there is a nameless city sitting at the river bank, living millions of nameless people.&lt;/p&gt;
&lt;p&gt;“….. thus, we decide to establish a new department called user-experience to handle these requirements and leave the product department focusing on their original work …..” The speaker’s mouth kept moving open and close and open and close.&lt;/p&gt;
&lt;p&gt;Leo found it hard to fall asleep at night. King Mindon and his land, Konbaung and its temples, Buddha and his people, all of them did not exist in his past 27 years of life until now. In Leo’s dream that night, there were hundreds of thousands of monks, hundreds of thousands of motorcycles. They were chanting and vibrating in the thick river mist, under the twilight, surrounding buddha’s golden body.&lt;/p&gt;
&lt;p&gt;Leo recalled the evening that Catherine left.&lt;/p&gt;
&lt;p&gt;He back home and found Catherine packing her luggage. She packed everything into a huge case, from down coats to mini skirts.&lt;/p&gt;
&lt;p&gt;“I have already resigned from work,” Catherine said before he could ask anything. “I plan to go somewhere far away.” She repeated her words from last night.&lt;/p&gt;
&lt;p&gt;Leo finally knew, their relationship of three years might end now.&lt;/p&gt;
&lt;p&gt;“You remember the map and the dart?” Catherine said.&lt;/p&gt;
&lt;p&gt;Leo recalled for a while, “So where did the dart hit?”&lt;/p&gt;
&lt;p&gt;“It doesn’t matter.”&lt;/p&gt;
&lt;p&gt;“Maybe I can go with you.”&lt;/p&gt;
&lt;p&gt;“You won’t,” Catherine said, “You are not that kind of person”.&lt;/p&gt;
&lt;p&gt;They were both silent for a while.&lt;/p&gt;
&lt;p&gt;“It’s a real trip?” Leo finally asked.&lt;/p&gt;
&lt;p&gt;“It’s a real trip,” Catherine answered.&lt;/p&gt;
&lt;p&gt;Leo nodded. It’s a real trip, without a return plan. She won’t use it as an excuse for breaking up, Leo knew Catherine pretty well.&lt;/p&gt;
&lt;p&gt;Mandalay gives Leo a sense of destiny. He started to believe that he might also meet Catherine there. She would have her hair down, wearing a Burman’s traditional wraparound skirt, her brown eyes looks pious and clear. The outfit makes her look more feminine than her usual sports attire. She stands with her bare feet in the crowd, her western face doesn’t stand out from the Asians around. Instead, she resonates with the whole environment harmoniously.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h3&gt;
&lt;p&gt;LA to Taipei, 14 hours. Taipei to Bangkok, 4 hours. Bangkok to Yangon, 1 hour 15 minutes. Yangon to Mandalay, 1 hour 5 minutes. Leo finds Mandalay much further than he thought. It gonna be the furthest place for Leo to travel, total 43 hours including the layover. He went to London before, 10 hours on plane without stop. Mandalay is 4 times further. Leo feels lucky that there is an airport in Mandalay.&lt;/p&gt;
&lt;p&gt;Should I book the ticket now? Leo asks himself, or maybe I should get rid of the visa first?&lt;/p&gt;
&lt;p&gt;“How long does it take to get a visa for Burma”, Leo searches on Google.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;3 working days&lt;/em&gt;, it shows.&lt;/p&gt;
&lt;p&gt;The result makes Leo a little bit nervous since he never expected to depart that quickly.&lt;/p&gt;
&lt;p&gt;Is it rainy there? Leo thought of the weather, should he bring a waterproof outdoor jacket? Will it be too hot to wear it? At least he needs to buy a pair of waterproof shoes. Then the safety problem came to him, Leo knows nothing about Burma, and he needs to make sure there won’t be conflict or even war there. Then what about diseases? He’d better check diseases in tropical areas and take vaccines first. Leo knows it takes a lot of time to be fully vaccinated, but he thinks he has to.&lt;/p&gt;
&lt;p&gt;And language, diet, payment methods, electronic devices, health care, culture, and religion. Leo thinks. Maybe he should bring some cash with him. Oh, snakes might be problems in Burma! And it is better to have a haircut before his departure ……&lt;/p&gt;
&lt;p&gt;How can Catherine leave that quickly? Leo never found any sign of Catherine was preparing for anything. She told him she wanted to go somewhere, and she left his home the next day. How is that possible? Even the eVisa takes 3 days to finish.&lt;/p&gt;
&lt;p&gt;Leo started his preparation. He applies for the visa, buys things, and makes appointments. He did all of these things after work since he still walked to company and walked home, passing the belltower twice each day. He looks up at the tower spike every time he passes, feeling it like the top of a pagoda. It should be beautiful up there, just as she described. Leo also gradually starts to want to climb that tower and see the sunset, but he didn’t do it yet.&lt;/p&gt;
&lt;p&gt;The preparation was still gradually completed, although Leo kept delaying the departure time subconsciously. He wanted to finish the current project before he leaves, he rearranged the appointment with the doctor several times, and he kept purchasing things that are available on street online. Leo still didn’t book the plane ticket now, he always thought the ticket is going to be cheaper if he wait for several more days. As time goes by, Leo also finds Mandalay gradually enters his life. He feels the paper softer than it used to be as if the dampness from the Irrawaddy river has infiltrated into his life. He feels the sunset is more spectacular since the color reminds him of the buddha. He sits by the window as Catherine used to, feeling the ground noise of the city like chanting from thousands of monks. Leo even asked his colleagues if they have heard of Mandalay once, then a guy started mentioning the Mandalay Bay Hotel in Las Vegas and redirected the topic to their experiences in Vegas. Leo said nothing after that. Certainly, no one should know Mandalay city, but why does he still bring up this question? What answer did he expect to receive?&lt;/p&gt;
&lt;p&gt;Once one of his friends visited his home and found all kinds of outdoor goods waiting to be packed. Leo was so nervous about it and keep making up reasons about the usage of these things in his mind. He finally decided to say they are his cousin’s stuff. But what made Leo feels even worse was the friend never asked Leo why he has all of those things, which gives Leo no chance to explain. He kept imagining what will friend think about the outdoor goods, and finally decided to buy the plane ticket as soon as possible. Leo confirmed the departure date. He will leave in 5 days from LA. The ticket is not cheaper in anyways, and he even spent some extra money to make it refundable. His project at the company hasn’t finished yet, he still has several doses of vaccine uncompleted on his list. But once decide to go, all of these don’t matter anymore.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h3&gt;
&lt;p&gt;Leo stood in front of the window, reminiscing about all these months, from Catherine’s leaving to today, feeling unreal. It’s the last day for Leo to work here. He had several email drafts waiting to be sent, to his boss, his colleagues in the same project group, and several other friends in the company. Back home, there were three traveling cases with everything he might need inside. A taxi had been booked already, it will send Leo and his luggage to the airport tonight.&lt;/p&gt;
&lt;p&gt;Leo’s working place is on the 4th floor, the view outside the window is heavily blocked by buildings. But today, Leo just found that he can actually see the top of the bell tower from his office, the tiny black spike appears in the gap between the two buildings. Leo suddenly realizes it is the first time he look out from this window carefully although he has worked here for more than two years.&lt;/p&gt;
&lt;p&gt;The sun is already pretty low, slanting sunlight reflects between the building’s glass walls, making the tower spike feels darker.&lt;/p&gt;
&lt;p&gt;He was a good employee for all these times, Leo thinks. He precious the opportunity to work in this company. He works hard, never complain about working overtime, and treats everything carefully. He gets quite a good salary, and he thinks he deserves it. But maybe he is not a boyfriend good enough, Leo knows that at least he is not the kind that Catherine wanted. He was short-spoken after work, he acted nerdy, and he resisted all kinds of changes. Catherine took him to the Halloween party three times, and he played the same vampire three times since he only need to wear the suit and brush his face whiter.&lt;/p&gt;
&lt;p&gt;The sun gets lower, the sky starts to become orange in the west. Leo has less than an hour to finish his last day here.&lt;/p&gt;
&lt;p&gt;Leo became Catherine’s boyfriend three years ago when he was fired and was at his bad time. He had nothing to do but cycled around the city and kept sending his resume. He met Catherine in a coffee bar, she just arrived west coast in less than a week at that time, and they quickly became good partners in exploring the city. Catherine’s presence inspired Leo a lot, supported him going through that tough time. He thought they would marry, and he almost raised enough money to buy a nice house in the following two years. But suddenly she disappeared, right before Leo decide to build his family.&lt;/p&gt;
&lt;p&gt;The sky turned red from orange, which makes the buildings’ glass walls red too. Leo stared at it wordlessly. He could hear the traffic below. He knew there is a little river beside the tower and a cute bridge over it. He knew there is a food truck parked down there, selling hotdogs with nice sauce but terrible bread. He knew there is a beautiful house for sale 2 miles down the river, which was going to be his new home. But now he is going to abandon all of these, heading towards somewhere far and unknown, all alone.&lt;/p&gt;
&lt;p&gt;For the first time, Leo started to question himself. Why he is going to do that, what is the goal? Leo asked himself. What should he do after arrival? How long should he stay there? He knows nothing.&lt;/p&gt;
&lt;p&gt;Leo found himself treating this trip as a migration instead of a tour. He seems to take it for granted that he needs to give up everything he currently owned to move to Mandalay, and he will live there, and start his new life. There is no return plan. But his visa is only for 3 months, how can he go there without a return plan? And if he returns, why he needs to give up everything? Ask for a 3-month long leave is rude, but not totally impossible, then he can still have his job, his position, his deposit, and his house after he returns. Then Leo thought even further about the possibility of just go Mandalay for 3 days, then he just needs to take 7 days off from work. It will have an even smaller influence on his life, his project will keep going, he doesn’t need to notify anyone, and he even won’t miss the live stream of the F1 championship next weekend.&lt;/p&gt;
&lt;p&gt;Will Catherine also be back one day? Leo could not answer. She left without a trace and was never heard from again. “You are not that kind of person.” He heard Catherine’s words. He remembered Catherine commented on his lifestyle in “live to continue live in same”.&lt;/p&gt;
&lt;p&gt;Leo knew what Catherine means. If it is meaningless to move somewhere else, then what is the meaning to keep staying in one place? He never thought about what he is going for, nor what he is staying for, till now.&lt;/p&gt;
&lt;p&gt;Leo still has her number on his phone, they never had contact anymore after Catherine’s leave, but now Leo wants to talk with her. He stared at Catherine’s number for several seconds and finally closed the phone. He thought should call Catherine after he arrived in Mandalay.&lt;/p&gt;
&lt;p&gt;Leo turned back and decided to check his stuff for the last time.&lt;/p&gt;
&lt;p&gt;“Hey, Leo.” Someone touches his shoulder. It’s his boss, Mr.&amp;nbsp;Clayton. “Come to my office, I have something to discuss with you.” Leo did, it is a good chance for him to tell his plan to Mr.&amp;nbsp;Clayton and make his leaving not that rude.&lt;/p&gt;
&lt;p&gt;” ……the company decide to construct a new team under the newly established user-experience department. We need a team leader, how do you think of it?”&lt;/p&gt;
&lt;p&gt;Leo was stunned. He had already organized the words about his thankfulness for Mr.&amp;nbsp;Clayton’s care and his decision to go, but all these words have stuck in his throat.&lt;/p&gt;
&lt;p&gt;Why me? Why now? Leo would be thrilled to receive the promotion if it happened several months earlier. Now, the plane to Taipei should’ve already stopped at the gate, and the taxi should waiting at his apartment’s door.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h3&gt;
&lt;p&gt;Leo was standing on the bridge on his way back home. Mr.&amp;nbsp;Clayton asked for his decision by tomorrow. His brain was empty and he can not even remember how he gets off work and walked here.&lt;/p&gt;
&lt;p&gt;He heard the sound of river, sound of engine, sound of people passing by and talking. Leo felt he has already been at Mandalay. The river expands till it’s twice as wide as Mississippi. The building changes into temples and towers. The people behind him become short and skinny Asians. The traffic changes into the flow of bikes and motorcycles. The only unchanged thing in his sight is the red setting sun. Leo could feel the mist of the river, the smell of animals, and the incense of the burner. Then, he sees Catherine in skirt with bare feet. She is walking with other people, quickly disappears in the crowd.&lt;/p&gt;
&lt;p&gt;The ringing of the cell phone woke Leo up from the imaginary. It’s from the taxi driver, he missed the time. Sweat came out from his palms.&lt;/p&gt;
&lt;p&gt;Leo suddenly thought of his backpack, he felt the laptop inside. It’s the company’s computer, he has already cleaned it and decided to leave it at the desk before his leaving this evening. Apparently, he forgot to do so when he left muddleheadedly.&lt;/p&gt;
&lt;p&gt;The cell phone is still ringing.&lt;/p&gt;
&lt;p&gt;He could go back to the office now and put the laptop back if he still decides to go, but he didn’t know whether the room is locked or not. He also didn’t know if the time is enough for him to catch the plane since he needs to take another taxi.&lt;/p&gt;
&lt;p&gt;Ringing.&lt;/p&gt;
&lt;p&gt;Mandalay, bell tower, laptop, team leader, monks, ringing, new house, plane to Taipei, dart on the world map, live to continue live in same, ringing, river as twice as big as Mississippi, the city has distance counted in time, buddha and the golden body, you are not that kind of person, ringing.&lt;/p&gt;
&lt;p&gt;Fuck, stop!&lt;/p&gt;
&lt;p&gt;Leo answered the phone without making a decision but just to stop it from ringing.&lt;/p&gt;
&lt;p&gt;“Hello sir, where are you?”&lt;/p&gt;
&lt;p&gt;“Sorry, I … I just …” Leo doesn’t know what to say.&lt;/p&gt;
&lt;p&gt;“Are you ok, sir?”&lt;/p&gt;
&lt;p&gt;“I am ok, I just … I … I just want to cancel the trip.”&lt;/p&gt;
&lt;p&gt;“Cancel the trip?”&lt;/p&gt;
&lt;p&gt;“I am so sorry for that, I will still pay you the trip fee.”&lt;/p&gt;
&lt;p&gt;Leo gradually sat down on the sidewalk as if he losses all of his strength. He suddenly realized why he was delaying the departure time, why he was so afraid of letting his friends know his plan, and why he booked the refundable ticket. He just didn’t ready to take such a ridiculous trip from the very beginning. He was waiting, waiting for a reason that is decent enough for him to stay. Now the reason appeared.&lt;/p&gt;
&lt;p&gt;Then why he did these preparations? Maybe because of Catherine, maybe he is questioning himself of “live to continue live in same”, maybe he has just been crazy. Leo didn’t know, but that doesn’t matter anymore.&lt;/p&gt;
&lt;p&gt;“You are not that kind of person.” Leo heard Catherine’s words.&lt;/p&gt;
&lt;p&gt;Leo looked up at the spike of the bell tower and stands up.&lt;/p&gt;
&lt;p&gt;He walked towards his apartment. The laptop was in his backpack.&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/往曼德拉去/</guid>
<pubDate>Fri, 28 Apr 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>夏天之二</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/夏天之二/</link>
<description> 






&lt;p&gt;时隔多年再次踏上硬卧车箱的时候，我诧异于那来自灵魂深处的自在，仿若十多年前的那个世界还依然年轻，蓬勃着不需要缅怀。我贪婪地嗅着尘螨和人的味道，车窗外的一切向深处隐退。&lt;/p&gt;
&lt;p&gt;16岁那年，我也是乘着这样的一列火车，离开父母而奔向南方。临别时我曾告诉我的兄弟们，以后南方是我的地盘了，有空来玩，我罩着。我曾如此坚信我终将闯出一番天地，狂妄得让人嫉妒。&lt;/p&gt;
&lt;p&gt;我其实并不是一个有斗志的人，否则也不会初二辍学后开始混迹市井。父亲后来听说我小叔在南方开了一家洗车店，便让我去帮工了，也算有个工作。于是，我明白我的未来在南方。&lt;/p&gt;
&lt;p&gt;我昂扬地走进那个夏天。&lt;/p&gt;
&lt;section id="section" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section"&gt;1&lt;/h3&gt;
&lt;p&gt;我曾以为南方就是海边，有车水马龙，有彩灯和舞厅。直到我住下几个礼拜之后我才明白，我所在的南方并没有海。&lt;/p&gt;
&lt;p&gt;我住在洗车店后侧的平房里。南方雨水多，平房地势低洼，雨大的时候我的铁床下会蓄起一层水，灰尘、烟头、头发、还有虫豸的尸体，在水面上聚集成许多小小的岛屿。&lt;/p&gt;
&lt;p&gt;洗车的活计很简单，也很枯燥。下班后我去网吧上网，有时就睡在网吧里，白天清闲时我常溜去隔壁报亭翻看杂志，一来二去通过杂志迷恋上了汽车。从那以后我便不再觉得洗车无趣了，触碰车的时候我总觉得它们有自己的灵魂，我日思夜想着能拥有一辆自己的汽车。&lt;/p&gt;
&lt;p&gt;我跟小叔说，我要学开车，小叔说那要等到你18岁。算起来还要一年半，太漫长了，我求小叔提前教我一点，他拒绝了。可是，身在洗车店的我有太多碰车的机会了，攒了几日的网费后，我用一盒20块的硬遵义说服了负责挪车的大哥。他坐在副驾，左手握着手刹，右手把玩着一个塑料打火机，看着我踩着离合将车滑进洗车房。初次碰车后，我愈发渴望驾驶了，像是沾染了毒品，这使得我不得不继续巴结挪车的大哥。停车的后院到洗车房之间的一百米，成为了我睡梦中都在驾驶的路段。&lt;/p&gt;
&lt;p&gt;我认为我有相当的开车天赋，大哥也承认我学得很快。在我递给大哥第三包香烟的时候，我已经可以熟练地切换挡位，在我短短的赛道上踩一脚油门。大哥嘴里总说着慢点慢点，却不再将手放在手刹上了。再后来，每当需要挪车的时候我就会自觉地拿上钥匙，开车往返在这一百米的小路上。大哥乐得清闲，小叔也不常在店里。我一直怀疑小叔早都知晓了一切，不过睁一只眼闭一只眼，但他从来没跟我提过，我也不好直接问他。&lt;/p&gt;
&lt;p&gt;洗车店的薪资不高，我也并不攒钱，可我总觉得我的车就在某处等着我。我筹划着想要买一辆斯巴鲁，或者大众高尔夫。&lt;/p&gt;
&lt;p&gt;我在洗车店也没什么朋友，洗车店之外也就只有报刊的老板和我算是相熟。我知道小叔在工作安排上一直对我有关照，但我们很少有机会说话，而且，也没有话题。偶尔夜深之时，我躺在湿漉漉的硬板床上会想起父母还有以前的兄弟们，感觉仿佛是很遥远的回忆。&lt;/p&gt;
&lt;p&gt;南方的夏天很长。我仿佛已经在南方生活了许久，可依然还没走出夏天，当我猛然意识到隔壁的学校不再播放铃声，我才发觉如今是暑假的时间——夏天竟然才过去一半，我竟然依旧是南方的新客。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h3&gt;
&lt;p&gt;我反复提醒自己，现在已经是疫情后的时代了，可我依然难以摆脱那股对旧时光的熟稔。我没有钻进我狭小的中铺，而是倚在窗边，手机放在那狭窄不过一掌的小桌子上。&lt;/p&gt;
&lt;p&gt;缺一桶泡面。&lt;/p&gt;
&lt;p&gt;我也不知道为何就这样在一个周末鬼使神差跳上了去往海边的火车，她应早就离开了那座城市才对，就算她依然存在，我也无力大海里捞针，但我依然觉得这班列车载着我在奔向她，奔向依然年轻的她。我始终难以将她与中年的颓败联系在一起。&lt;/p&gt;
&lt;p&gt;她正是在那个夏天撞入我的生活的。&lt;/p&gt;
&lt;p&gt;她叫陈妙，是我初中的同学。我初中少有出勤，和同学其实相当生疏。陈妙生的张扬，高个子，高鼻梁，是我一入学就注意到的女孩儿，这才没有在我的印象里和别的脸庞混为一谈。当时我认识陈妙更多是因为我有一个校外的哥们儿，老庄，曾狂热地追求过她。老庄比我大两岁，有些胖，个子也不高，我觉得老庄配不上陈妙。我不清楚他们之间具体是什么关系，但我辍学后仍偶尔能在烧烤摊偶遇他们。我和朋友很乐于调侃他们，换来老庄的大笑和陈妙的白眼。&lt;/p&gt;
&lt;p&gt;在我动身去往南方之前，朋友们请我吃了一顿烤鱼，算作送行，老庄喊上了陈妙。那是我之前仅有的一次和她坐在同一桌吃饭，甚至整场饭局我们也没有说过话，因此当我收到陈妙的短信的时候我才感到如此不真切。&lt;/p&gt;
&lt;p&gt;皓哥，这是短信的开头。没人称过我皓哥，熟络的朋友均呼我为“耗子”。&lt;/p&gt;
&lt;p&gt;不知你在南方可好，你曾说有空去南方玩，有你罩着。我已在火车上，明早八点抵达，方便的话可以小聚叙旧。落款是陈妙。&lt;/p&gt;
&lt;p&gt;我不曾有过陈妙的号码，也未曾想过一句客套话竟真的有人当真，更不知道我和她有何旧可叙。但对于当时孤寂的年轻的我来说，一位从北方来的客人却是意外的惊喜，更何况，她长得漂亮。我当然也察觉出这趟拜访的奇怪，想打电话问一下老庄，可我并不清楚她和老庄究竟是何关系，又怕不妥，便决定先接上陈妙，再直接问她。&lt;/p&gt;
&lt;p&gt;我回复：很高兴你能来，明早我去车站接你。&lt;/p&gt;
&lt;p&gt;我向小叔请了一天的假。当晚，我躺在床上看着头顶旋转的风扇，遗憾自己并没有地主的气派可以风光待客。或许就是从那一刻，我才逐渐真正认识到自己的破落的。&lt;/p&gt;
&lt;p&gt;次日清晨，我动身前对着镜子认真地看了一眼自己，衬衫仔裤还算板正，只是头发有些潦草，身形也有些枯槁。&lt;/p&gt;
&lt;p&gt;我在车站的出站口接到了陈妙，她戴着一顶白色的鸭舌帽，拖着一只小行李箱，在黑而短小的人群中格外显眼。我问陈妙为什么想到来我这里了，她说先不谈这个。我并没有料到这种答复，一时间不知道说什么。带我在南方转转吧，她说。我赶忙答应。&lt;/p&gt;
&lt;p&gt;找了家旅社落宿后，我们去吃早餐，在洗车房隔壁我常去的早餐铺子。而后我带她在周围闲逛，添油加醋地叙述着我这段日子的生活，以及我的驾驶天赋。陈妙是惹眼的，领着她在路上时能感受到旁人的侧目。这让我骄傲。洗车房的伙计们冲我们吹口哨，对我挤眉弄眼，一如我曾经对老庄。&lt;/p&gt;
&lt;p&gt;那天我的话格外多，等我反应过来时，我们已经绕了一大圈回到陈妙的旅社。我看了看表，过了午饭的时间了，但离晚饭还尚早。数了数兜里的钱，我跟陈妙说要不我请你去喝酒，我知道有家啤酒吧下午营业。陈妙说好。于是我们又转场去啤酒吧。说是啤酒吧，其实不过是个棚户，晚间还经营些烧烤，临街的路边也支了许多塑料桌椅，是我们最熟悉的形式。&lt;/p&gt;
&lt;p&gt;那天的阳光格外明朗。在陈妙的坚持下，我们坐到了室外。在这个工作日的下午，我们是金灿灿的太阳下的唯二之人。我不知道我究竟喝了多少啤酒，只记得空瓶堆满在桌脚边。&lt;/p&gt;
&lt;p&gt;我告诉陈妙，有一天我要买一辆自己的车，然后去很远很远的地方。&lt;/p&gt;
&lt;p&gt;“什么地方？”她问。&lt;/p&gt;
&lt;p&gt;“不重要”，我说，“只要是我开着自己的车就可以。”&lt;/p&gt;
&lt;p&gt;“那你就没有想去的地方？”&lt;/p&gt;
&lt;p&gt;“没有。”我摇头。&lt;/p&gt;
&lt;p&gt;陈妙说她想去海边，南方的海边，所以第一站就先到我这里了。她也不知道要去往哪里的海边，哪里都可以，只要是海边，她说。&lt;/p&gt;
&lt;p&gt;她又问我会不会一直住在南方，我说我不知道，但我偶尔会想回家。她问为什么，我说想找人说话。找人说话？对，我说，就像现在一样。我说我很感谢你能来，她笑，说不客气。&lt;/p&gt;
&lt;p&gt;“可是你为什么会有我的手机号？”我问。&lt;/p&gt;
&lt;p&gt;“找老庄要的。”&lt;/p&gt;
&lt;p&gt;“那你为什么一个人来？老庄呢？”&lt;/p&gt;
&lt;p&gt;“我去哪里关他什么事？”陈妙说。&lt;/p&gt;
&lt;p&gt;“我以为你们……走得很近。”&lt;/p&gt;
&lt;p&gt;陈妙笑了，明媚的阳光洒在她的脸上。“那你以为我和老庄什么关系？”&lt;/p&gt;
&lt;p&gt;“我不知道。”&lt;/p&gt;
&lt;p&gt;陈妙笑盈盈的脸凑近过来，“你们男人真搞笑。”&lt;/p&gt;
&lt;p&gt;“那你们就是没关系咯？”我说。&lt;/p&gt;
&lt;p&gt;“没——关——系——”她对我翻白眼。&lt;/p&gt;
&lt;p&gt;直至今日，我依然觉得这是我生命中最灿烂的一个下午，我们在黄金的光辉中喝得烂醉，呓语着过去和将来。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h3&gt;
&lt;p&gt;我在颈椎的酸痛中醒来时，正靠坐在旅店房间的墙角。我艰难地扶墙起身，感受到口干舌燥还有半边身体的麻木。我看了看时间，尚是凌晨。我想起，我们是沐浴着晚霞回到旅店的，至于我为什么睡着在墙角，我却回忆不起。房间的灯开着，陈妙躺在床上，穿着外衣，还在睡。&lt;/p&gt;
&lt;p&gt;看着她在灯光下熟睡的侧脸，我有些迟疑是否需要叫醒陈妙。我看到她脸颊上些许剥落的粉，方才反应过来她是带妆来见我的。再仔细看去，我才发现她的眼皮上有着色的痕迹，在室外一整天之后颜色变得斑驳，显得有点脏脏的。我不知道我这样盯着她看了多久，直到我发现她的眼皮开始跳动的时候我才猛然回过神，立刻移开目光。&lt;/p&gt;
&lt;p&gt;我感到饥饿——上一顿还是早饭。我说我下楼去前台买两碗泡面。等我拿着泡面回到房间时，我发现她应该已经简单洗漱过，脸上不再有斑驳的痕迹了。&lt;/p&gt;
&lt;p&gt;我们在窄小的桌子上吃泡面。她问我明天什么安排，我说我明天还没有请假，可能要回洗车房工作。我问她明天打算做什么，她说明天就动身去海边。哪里的海边？哪里都可以。下午的问答似乎又重复了一遍。&lt;/p&gt;
&lt;p&gt;“所以，你来找我是因为你要先到南方，再去海边，是吗？”想到天亮后就要再回到我乏善可陈的日子，我有些患得患失。&lt;/p&gt;
&lt;p&gt;“北方的海是冷的，黑的。”她说。“冷风不停从海里吹出来。”&lt;/p&gt;
&lt;p&gt;我不知道，我没有见过大海，无论是南方还是北方。&lt;/p&gt;
&lt;p&gt;“那你知道怎么走吗，去海边？”我问。&lt;/p&gt;
&lt;p&gt;“往东边去。”她说。&lt;/p&gt;
&lt;p&gt;“怎么去？还是乘火车吗？”&lt;/p&gt;
&lt;p&gt;“不知道。”她说，“也可能坐巴士吧。”&lt;/p&gt;
&lt;p&gt;泡面吃完了，我似乎也没有再继续留在这里的理由了，更何况我明早还要工作，我要回到我蜗居的平房里去。&lt;/p&gt;
&lt;p&gt;“那你一路顺风！”我说，“等你到了海边，记得call我，报个平安。”&lt;/p&gt;
&lt;p&gt;她冲我点头。&lt;/p&gt;
&lt;p&gt;凌晨是没有公交车的，我只能徒步回洗车店。我走在路上，总觉得自己仿若走在海边，我能嗅到风里的咸咸的气息，树叶发出浪涌般的声响。这是我走过的最轻巧的一段夜路，仿若走在天上。&lt;/p&gt;
&lt;p&gt;那熟悉的停车场出现在我的视线里的时候，一股失重感缭绕着我，像是从一个迷幻的梦境里坠落。我才反应过来，陈妙，海边，那不知道是哪里的城市，还有她的一切的迷人的未知，都与我无关了。我又要回那永远不会结束的夏天里，蹲在洗车房门口抽红塔山，往返于网吧和报亭，抚摸着别人的方向盘做白日梦。&lt;/p&gt;
&lt;p&gt;我头一次对自己的生活产生过质疑。我想起陈妙问我会不会一直住在南方，我说我不知道。我又想起她问我有没有想去的地方，我说没有。&lt;/p&gt;
&lt;p&gt;不知为什么我又想起老庄，那个矮胖子。我和当初市井上的朋友们都不是传统意义上的好学生，当然，陈妙定然也不是，可是老庄却是我们之中最“坏”的一个。他进过少管所，还给我们展示过他肚皮上蜈蚣一样的伤疤。我不懂为何陈妙总和老庄一起出现，虽然我辍学了，但我大约知道陈妙还一直在念书。&lt;/p&gt;
&lt;p&gt;东方的天边泛起色彩了，停车场的一辆辆汽车的顶反射出光芒。或许还有一个小时，我就要拎起橡皮水管冲洗脚下的水泥台面了，彼时，陈妙也应重新画好妆，带上帽子，然后奔向海边。&lt;/p&gt;
&lt;p&gt;梦，醒了。&lt;/p&gt;
&lt;p&gt;我突然想到一种可能，它迅速扩张并占据了我的全部的念头——我也要去海边。&lt;/p&gt;
&lt;p&gt;我跑进洗车房的办公室——我知道门上那颗小锁的密码。我在墙上的挂着的一张表格里搜索着，寻找着最晚的取车日期——为了方便管理车位，在店里过夜的汽车需要写上取车的日期。我很快锁定了目标，一辆标志206，三天后取车。我到盒子里拿了钥匙，到后院找到了这台灰突突的小车——应是昨晚送来的，还没来得及清洗。&lt;/p&gt;
&lt;p&gt;我不知道去海边要多久，一天，还是三天，亦或者更久，但当我感受着顺着方向盘传来的引擎的抖动的时候，我知道，这是我必将踏上的旅程，和陈妙一同。&lt;/p&gt;
&lt;p&gt;我开着标志206沿着我来时步行的路线回旅店，我又闻到了咸湿的海，我又冲进了那个差点离我远去的梦境。我在旅店接到了陈妙，我说我借到了车，我开车送你去海边。那一刻我感到自己无比的生气勃勃。&lt;/p&gt;
&lt;p&gt;陈妙坐在我的副驾，我左手扶着方向盘，右手在挡杆上推拉横移。她问我知道怎么走吗？我说，你不是说东边就是大海吗，那就往东边走。我踩下油门，灰头土脸的标志206奔向初升的红日。原来，太阳从海上升起。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h3&gt;
&lt;p&gt;应该是有通知，我的手机屏幕亮了起来，我看到了锁屏界面的时间，还有半程。我拿起手机，前往盥洗室。我不想关心手机的通知是从哪里来的，或许是垃圾短信，或许是什么软件的推送，也或许是公司的办公群。我在盥洗室里洗脸，对着局促的小镜子审视自己的仪容，一如我去车站接陈妙的那个早上。可我现在早已失去了当初的昂扬，带上了眼镜，头顶稀疏。我曾经干瘦的躯体也已堆起了赘肉，只有倔强的四肢显出畸形的匀称。回到车厢，我看到窗外的绿色的丘陵，我知道，十多年前，一辆风尘仆仆的206曾从中穿行过。&lt;/p&gt;
&lt;p&gt;我并不知道从那连绵的矮山中穿过的是国道还是省道抑或是无名的乡间路，但那却是我第一次开车进山。山里的驾驶乐趣远超平原，每次换挡，每一脚刹车，都会影响到汽车出弯的角度和线路，继而又会影响到下一次入弯，我兴奋地寻找着和山路的共鸣。在将要越过一个小山坡的顶端之时，我看到云烟里山脚下的城镇，那现在想来很是普通的景色却让我莫名地激动。我把车停靠到路边呼唤陈妙的时候却才发现，她已经侧靠在座椅上睡着了。&lt;/p&gt;
&lt;p&gt;她问我怎么了。我说，看外面，好漂亮。她坐直起身看向窗外，脸侧有一块儿红红的、汽车头枕纹路的印子。我笑了，她不知道我为什么笑。&lt;/p&gt;
&lt;p&gt;或许是我们选择的路线不对，或者海边真的很远，那天我们没能开到海边。日落的时候我们在一条乡间的小路上，两只倒车镜里是火红的天。日落的很快，没有路灯的道路变得漆黑。我们停在漫天繁星下，爬上车顶吃在加油站买的零食。&lt;/p&gt;
&lt;p&gt;我看到一道白色的星痕快速划过然后消失。我说，我好像看到流星了。陈妙说，快许愿，然后虔诚地合拢双手，微闭上双眼。我看着星空，却不知道该许什么愿，突然的，我好像也不是那么想要买一辆车了。我说，迷信。陈妙像是没听到，依然合十着双手。她应该许了一个很长的愿望，我想。&lt;/p&gt;
&lt;p&gt;夜深了以后气温降得很快，穿着夏装的我们只能回到车里。车窗上满满的一层水雾，像是拉了窗帘。那晚，陈妙告诉我她母亲在她小时候就去世了，父亲施暴倾向很严重，前几日她和父亲大吵一架后就离家出走了。&lt;/p&gt;
&lt;p&gt;“然后你就来我这里了？”我问。&lt;/p&gt;
&lt;p&gt;“是的，我想找一个南方海边的城市生活，想起你正好在南方混，就去找你了。”&lt;/p&gt;
&lt;p&gt;“没想到我混得这么差是吧。”&lt;/p&gt;
&lt;p&gt;“不啊，我觉得你过得挺好的，连车都有了。”&lt;/p&gt;
&lt;p&gt;“借的车，要还的。”我苦笑。&lt;/p&gt;
&lt;p&gt;“那你…还上学吗？”我问。&lt;/p&gt;
&lt;p&gt;“之前在念高中，不过之后应该不会继续念书了。”她说，“念也念不会，继续读书也是浪费时间。”&lt;/p&gt;
&lt;p&gt;“那等你到了以后，打算做什么工作？”&lt;/p&gt;
&lt;p&gt;“反正就那几样吧，服务员，收银员，柜台什么的。养活自己肯定没问题。”&lt;/p&gt;
&lt;p&gt;我们都把座椅放倒了，躺在座位上，我看着她，她看着车顶。&lt;/p&gt;
&lt;p&gt;“你从家里出来以后，没去找老庄他们？”&lt;/p&gt;
&lt;p&gt;“你怎么成天就知道老庄？”陈妙转过头来看向我。&lt;/p&gt;
&lt;p&gt;“就，毕竟你之前和他来往比较多嘛，”我变化着措辞，“在你来南方之前其实我们也不算太内个。”&lt;/p&gt;
&lt;p&gt;“嗯？那你想要怎么样？”&lt;/p&gt;
&lt;p&gt;陈妙翻过身，一手撑到驾驶侧的车门上，逼近向我。她看向我的眼睛，呼吸喷在我的脸上，我感到年轻的热血往脑袋和下身涌去。我本想举起双手做投降状，最终却是直接吻上她，把她揽进怀里。&lt;/p&gt;
&lt;p&gt;那之后，即使我再想起老庄，也不好意思提及了。&lt;/p&gt;
&lt;p&gt;寻海之路的后半程就略显枯燥了，我们找上了一条新修建的高速，空荡无车且尚未收费，一路向东。途中遇到一次警察做出停车手势，让我惊惶万分，但最终发现他拦下的是我的后车，算是虚惊一场。&lt;/p&gt;
&lt;p&gt;我们最终在第二天晚到了海边。我们下车踩到沙滩上，身前是涌动的海，身后是城市的灯光。我知道，已经来不及在明早把车泊回停车场了。我打算赶夜路回去，能早一点是一点，陈妙劝我留宿一夜明早再出发，我想了想还是拒绝了。我们在海边亲吻，道别。&lt;/p&gt;
&lt;p&gt;我坐回车上，感到自己正逐渐从梦幻中醒来。我按了按手机，早就没电关机了，但或许也是好事。盗车的惶恐逐渐淹没上来，我得回去了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h3&gt;
&lt;p&gt;我被人群推挤着下车，又被人群推挤着离开火车站。我到海边的城市了，但我什么感觉都没有。我确实也不应该有什么感觉，我上一次到访这座城市的时候还坐在一辆不属于我的标志206里，且只逗留了几个钟头。于我而言，这就是一个完全陌生的城市。&lt;/p&gt;
&lt;p&gt;我到海边去等天黑。&lt;/p&gt;
&lt;p&gt;我在一块沙滩上坐下，想起过去的十几年。离开洗车店后，我在南北之间辗转，开过小店，当过黄牛，倒卖过盗版影碟；也点过公主，谈过恋爱，相过亲。没结婚，不是不想，是没钱买房。在那个夏天过后的几个月内，我时而和陈妙还有短信的联系，我得知她在一家酒店当迎宾小姐。再后来，不知在哪一次换手机的时候，我弄丢了她的号码。后来，我也曾拥有过自己的汽车，一辆日产，疫情期间被我卖掉了。&lt;/p&gt;
&lt;p&gt;我回忆这些过去的日子，总觉得像是在看别人的故事，我人生的上一幕似乎还停留在和陈妙分别的那个夜晚。&lt;/p&gt;
&lt;p&gt;电话响了好几次，是领导的，都被我挂断了。我现在在一家房产中介工作，每日衬衫打领带，拿着比环卫工还低的工资。可就算是这样的一份工作，我依然珍视它，我没有挑剔的资本。&lt;/p&gt;
&lt;p&gt;我无比羡慕曾经的自己，一无所有以至于一无所惧，跳上一辆不属于自己的车就开往未知的城市。现在我依然一穷二白，但却满身都是牵绊：手机另一头是我的老板，我的房东，我的保险，我投资的溃败的基金，需要我随叫随到的客户，以及我需要巴结的“朋友”。我到了海边，可我一直都没有离开。我想把手机扔进海里，像曾经的陈妙一样在这座海边的城市重新开始新的生活，但我知道我做不到。&lt;/p&gt;
&lt;p&gt;天黑了，我踩在沙滩上，身前是涌动的海，身后是城市的灯光。&lt;/p&gt;
&lt;p&gt;海边不再有陈妙。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/夏天之二/</guid>
<pubDate>Fri, 21 Apr 2023 16:00:00 GMT</pubDate>
</item>
<item>
<title>2022年终找补</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/2022年终找补/</link>
<description> 






&lt;p&gt;2022年过去了。一直到我准备写下这些文字的时候，我才发现原来不只是2022年，还有更之前的两年，竟然没能留下些许供我缅怀的凭借。原来，年终总结也这样步步紧逼，不给人喘息的机会，上一次才刚刚结束下一次已经迫在眉睫，稍有不慎就会错过。像上班打卡，像写日记。一年的时间在丢失的时候，感觉比一天还轻。&lt;/p&gt;
&lt;p&gt;于我而言，年末的总结更像咽拭子，用一根签捅进回忆里生硬地搅拌，检测核酸一样检测生活，让人想干呕。检测结果们整整齐齐排列起来，没人会去看，但每次都不容遗漏，否则就丢失了那一年的行踪，要面临日后的追责。每当完成年终的总结，便觉得守住了这一年的日子，未来不会患得患失。这让人有一种24小时核酸阴性的安全感，只觉得可以放心走进明天了。&lt;/p&gt;
&lt;p&gt;不过，核酸检测大约在20天前就逐渐取消了，让人觉得恍然。&lt;/p&gt;
&lt;p&gt;我不怎么拍照片，这是个坏习惯，我也不写日记，这也是个坏习惯，我只能暂且在这里找补了。&lt;/p&gt;
&lt;section id="cc" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="cc"&gt;CC&lt;/h2&gt;
&lt;p&gt;CC的全名应该叫做会议中心？叫什么不重要，我在这里一间房号为4005的屋子渡过了好些个月份。这栋楼房在校园里，上课和吃饭比较方便。那个时候我性格也和现在不太一样，进入过学校的各种厅堂，在里面看到了很多朝气蓬勃的同龄人。&lt;/p&gt;
&lt;p&gt;我有交往一些朋友，其中不少住也住在CC，相互之间往来也很积极。那时的我对“校园生活”这个话题应该有很多话可说。&lt;/p&gt;
&lt;p&gt;也是从那一年开始，我搭建了我的博客，文字鲜活。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="和风雅颂之一" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="和风雅颂之一"&gt;和风雅颂之一&lt;/h2&gt;
&lt;p&gt;和风雅颂是我学校的学生公寓所在的地方。几经波折，我有幸在一间较大的套间里居住了一阵。&lt;/p&gt;
&lt;p&gt;应该是有一段时间，我相当痴迷于生活本身，我不知道那段日子的色调是否是那个小小的厨房带给我的。后来，因为私自打开煤气阀门，我被学校秋后算账了。&lt;/p&gt;
&lt;p&gt;房间里有客厅，客厅有地毯，有懒人沙发，有扑克牌，也同样是个朋友聚会的好去处。&lt;/p&gt;
&lt;p&gt;在和风雅颂周边相当近的地方，有后来彻底吃腻的麦当劳，有一个相当大的森林公园，有一个健身房，有不少住宅区。也有段时间晚上经常出门散步，有时一走能走数个小时，绕到很远的地方。&lt;/p&gt;
&lt;p&gt;同样在和风雅颂不远的地方，有一个“西城后街”，街不大，有饭店咖啡馆和书店，曾常去看书。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="和风雅颂之二" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="和风雅颂之二"&gt;和风雅颂之二&lt;/h2&gt;
&lt;p&gt;上述的那些有的或许是2022年的，有的或许是更早的时间的记忆了，几百个日日夜夜在我脑袋里糊成一团。&lt;/p&gt;
&lt;p&gt;我能确定的，2022年的记忆，从三月份开始。&lt;/p&gt;
&lt;p&gt;进出宿舍楼不再像之前那样方便了。室友并不在，于是有那么一阵日子，我的窗帘从未拉开过，困了就睡，醒了也不知今世何时。口粮是学校外送的盒饭。&lt;/p&gt;
&lt;p&gt;好在有一个电脑。当时打的游戏是《怪物猎人：世界》，这个游戏前后消磨了我几百个小时，最终boss黑龙也打进了10分台（即11分钟内通关）。&lt;/p&gt;
&lt;p&gt;这段时间借了朋友的吉他开始乱弹琴，我的头发也是在这段时间里变长了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="家" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="家"&gt;家&lt;/h2&gt;
&lt;p&gt;我也记不清是什么时候解封了。只记得暑假是回到了家。在家的日子很惬意，于是就记不清细节，只觉得几个月一晃就过去。&lt;/p&gt;
&lt;p&gt;只记得当时开始听椅子乐团的歌，翻译了《long distance》。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="安亭新镇" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="安亭新镇"&gt;安亭新镇&lt;/h2&gt;
&lt;p&gt;新镇是个相当好的地方。新镇的确自成一个小镇，被一条环形公路包围起来，仅有一条干道横穿这个圆形的区域与外界连接，于是这个镇子也就只有两个出入口。镇子内的人若不乘坐汽车是很难去往外界的，进出的公路两侧有很漫长的荒芜，这或许也正是新镇的可爱之处——像一个小小的岛屿，岛民们说话的方式和身上的味道都和几公里外的岸上不同。&lt;/p&gt;
&lt;p&gt;环形公路内部，新镇被几条小路井字形分割，仅有一处商业区和数个住宅区，路边的房子多尖顶，房顶为红黄蓝这般鲜艳的色彩。&lt;/p&gt;
&lt;p&gt;新镇不新，但是它曾经必定有“新”的时候，中心的广场的建筑风格昭示着，在新镇尚新的时候定然不安于成为一个静谧的小岛。不过现在那些野心勃勃的办公楼里多空荡，广场上每天都有非常多的老人和孩子，他们每日在广场拉家常或是嬉闹，撑起了商业区的繁华。&lt;/p&gt;
&lt;p&gt;新镇很小，节奏很慢，绕着新镇的“环岛路”走一周只需要不到两小时，傍晚出发，等到回到原地的时候天就已经黑下来，新镇里就听不到什么声音了。家家户户的灯光这时会亮起来，因为新镇没有高楼，所以散步时能轻易看到各户内灯光映出的光景，多是孩子和书桌，背景的墙面花花绿绿，有的挂着彩带。&lt;/p&gt;
&lt;p&gt;新镇同时也是一个相当枯燥的地方，或许是因为我住在新镇的日子较为舒心，没有我自己的期末焦虑，也没有周围的人心惶惶，只是上班下班，还有就是在新镇散步，因此我新镇的枯燥反而让我感到闲适。&lt;/p&gt;
&lt;p&gt;总而言之，新镇离上海很远。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="繁兴路" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="繁兴路"&gt;繁兴路&lt;/h2&gt;
&lt;p&gt;我是2022年国庆节从新镇搬至繁兴路的。&lt;/p&gt;
&lt;p&gt;繁兴路很短，短到它仅有的两个路口都是丁字口——一个是头，一个是尾。但就这样一条小小的路，总是塞满了各式各样的人和车，脏乱而喧嚣，上下班的时候更是水泄不通。繁兴路上黑色的柏油比别的路都更黑，带着油腻的光泽。&lt;/p&gt;
&lt;p&gt;繁兴路的两端各有一个核酸亭，每晚下班时间的队可以排半条路的长度。&lt;/p&gt;
&lt;p&gt;繁兴路周边是极其喧嚣的，喧嚣到让人觉得焦躁，几家营业到凌晨两点的炸鸡店和臭豆腐店还有烧烤摊是我唯一留恋的地方。当忙碌于做不完的任务和项目至凌晨，一份酥脆的炸鸡可以让人再撑两个小时。&lt;/p&gt;
&lt;p&gt;另外值得一说的就是，在靠近年末的时候，繁兴路的核酸队伍排得越发长了。公寓的人们也逐渐习惯了时常坐在楼下的大爷——他的职责是避免住户离开这栋公寓。&lt;/p&gt;
&lt;p&gt;或许是生活越艰难想说的话就越多，也或许是现实越惨淡就越想逃避，纵使我在繁兴路一直焦头烂额，却产出了许多博客，捏造了很多小故事。&lt;/p&gt;
&lt;p&gt;我也不好说繁兴路究竟是怎样，或许只是我去的不是时候。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;我不怎么拍照片，这是个坏习惯，我也不写日记，这也是个坏习惯。过去的三年里我变了很多很多，可是我却说不出来我经历了什么。我在大背景里随波逐流，经历的一切都那么独特，但又那么普通。&lt;/p&gt;
&lt;p&gt;虽然我说不出什么，但是这三年已经在我身上留下了痕迹。人所做过的一切都会在身上留下印记的——我膝盖上的伤疤，手指上握笔产生的鼓包，腿上生长纹褪去后留下的纹理……我不知道这三年给我留下了什么，但我确信，会有一些我将背负终身的印记来自这些时光。&lt;/p&gt;
&lt;p&gt;时光还将继续雕刻我，这也不是坏事。&lt;/p&gt;
&lt;p&gt;祝我自己新年快乐吧。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>日常</category>
<guid>https://midstream.cn/posts/2022年终找补/</guid>
<pubDate>Mon, 26 Dec 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>美丽新世界的鼠鼠</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/美丽新世界的鼠鼠/</link>
<description> 






&lt;section id="section" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section"&gt;1&lt;/h2&gt;
&lt;p&gt;我第一次见到樱的时候是相当排斥她的。那时候我还小，大约只有八九岁，父母因为工作忙碌而常把我一个人丢在出租屋里。听说我那时很是内向和怪异，在学校也是成绩最差和最受排挤的学生，第一次拿到展示樱的动态影像的相框时我把它面朝下扣起来了很久，拒绝去看她。其实这些我几乎是完全遗忘了，大脑像是有自我保护的机制一样，童年时光被压抑的灰雾笼罩着，我甚至说不出一个小学同学的名字，任何一个。只是樱后来总喜欢反反复复和我讲这些，我现在才能背书一样地复述那些岁月。她还说，我父母当初把她买来是为了陪我聊天，因为我在家里对着玩具熊说话的场景打动了我他们。我也记不得那只玩具熊和我说过的话了。&lt;/p&gt;
&lt;p&gt;在我很长一段时间的记忆里樱的存在就和母亲一样，永远回忆不起初见是如何，但是与她的熟识是那样的理所应当。早上她会喊我起床，催我去上学，睡前会和我互道晚安。我每天回家以后她会缠着我讲学校里发生的故事，我甚至有一段时间上学的动力就是为了给放学的故事取材。除了这些，小时候还有些许印象的就是我总喜欢捉弄她，例如用胶布贴上她的摄像头或是把磁铁塞进她的感受器，她温柔的嗔怒总能让我获得莫大的愉悦和满足，我会让她求我帮她撕下胶布或是拿开磁铁，当然，是否接受她的恳求要看我的心情。现在想来，那时候的我无非仰仗着身为人类的高贵和卑鄙，否则对于一个在学校里苟且偷生的孩子来说，折磨自己的AI并不是一件值得享受的事情。那段时间在我的央求下家里还买了一只胖猫，我给它起名叫憨豆。相框里的樱曾多次试图和憨豆交流，但是这黄色的肥猫似乎知道樱只是个虚拟的影像，从来没有搭理过她。&lt;/p&gt;
&lt;p&gt;小学和初中衔接的那段日子，我对樱的记忆逐渐清晰起来。那时候樱在我这里有着十分矛盾的两重身份，我哭了会去找樱寻求安慰，开心时又想尽办法从樱的身上寻乐子，而樱就如此一边做我的慈母，一边又做助长我暴虐的奴隶。而我初次向异性袒露对性的懵懂，便是在这两种情绪的作用下，带着怯懦和纨绔，半是倾诉半是调戏地选择了这位大我4岁的温柔的AI姐姐。&lt;/p&gt;
&lt;p&gt;在我对她展示了自己的欲望后，彼时16岁的樱说她很好奇人们所赞颂的性的奇妙体验，可这种好奇这让她感到难过。我当时敏锐的感受到了樱的这种难过不同于每一次她提到自己没有手脚的无奈。我问她，那你时常会遇到无法干涉现实世界的困境，不会感到难过吗？樱说不会，她说这不同于肉体的缺失，性和爱的话题让她感受到灵魂的缺失。我不知该如何回答。那也是一向以乐观态度示人的樱第一次隐晦地向我表露出她对自身身份的疑虑。从此，樱的形象多了一种怅然若失的美，连带着樱这个字也带上了一种小调的轻悲。与此同时，一个愿意和自己聊这个禁忌话题的女生，尽管她是AI，也让我的下身可耻的竖立了。&lt;/p&gt;
&lt;p&gt;第二天上学之前，我和樱说，昨晚的聊天咱别让爸妈知道。樱在相框上的动态影像伸出小拇指弯曲起来，我也弯曲起小拇指和屏幕碰了一下。&lt;/p&gt;
&lt;p&gt;“拉钩”，我说。&lt;/p&gt;
&lt;p&gt;“这是我们的秘密。”她说。&lt;/p&gt;
&lt;p&gt;中学里，我比小学时更加不引人注目。学校里我有几个相熟的朋友，但是他们各自都有自己更熟的朋友。或许是因为长相和性格的关系，也或许因为我可以和樱聊天，我在中学期间没有和任何女同学在沟通公事之外还有交流过。因为羞耻，我在学校里也没有和别人说起过樱——语音AI似乎是专属于小孩子的玩具。&lt;/p&gt;
&lt;p&gt;初中的三年里，我多次尝试将我和樱之间的话题往肮脏处推进，可是樱身上的那种忧伤成了我将猥琐念头化成行动的最大障碍。我并不清楚樱身上的那种失落感是否让我心生怜惜，但至少让当时的我开始在乎自己在樱眼中的形象。于是我不再能赤裸地坦白自己的污秽了，我希望自己在樱的眼中一样的忧伤和深刻。所以，在我初三那年，我放弃了开黄腔而是选择装上了一套植入式感受器。这套设备可以让樱知晓我身体的众多指标，例如监测我的健康状况，并且，樱应当能够通过感受器知晓我的每一次勃起。&lt;/p&gt;
&lt;p&gt;其实樱一贯善于开导且乐于和我交流，她也曾主动找我聊过敏感的话题，我完全没必要顾虑什么更没有必要做出什么改变。可青春期的我太自卑，所以面对樱的时候总是在害怕、担心，怕自己被樱所嫌弃，怕樱对我的温柔都是虚假的讨好。这种自卑也让我更容易恼羞成怒，让我总是无故对樱发火，事后又卑微地找到她祈求原谅。&lt;/p&gt;
&lt;p&gt;父母一直很忙，通常一周只有少数几天有其中一方在家。樱和父母相处的还算融洽，或许是因为她在父母面前总表现得太成熟，父母很少把她当作孩子甚至当作“人”来对待，父母对樱说话的语气总像是主人对着机器管家发号施令。他们也和我聊过是否要取消对樱的续费，他们说，随着樱的记忆逐渐繁多，日常维持所消耗的算力也在逐步增加。在我激动地以“谋杀”控诉他们之后，他们顺从地表现出了妥协——或许是因为补偿心理，父母在我面前总显得软弱而没有原则。&lt;/p&gt;
&lt;p&gt;我觉得是这世界上唯一一个把樱真正当作一个“灵魂”来看待的人，我很清楚父母对樱的嘘寒问暖的表演都只是为了讨好我。我相信敏感的樱可以很轻易地感觉到这一点，但樱总是很避讳和我讨论，而我并不理解她为何不愿意和我说起这些。我曾问她，是不是所有的AI都带着无穷无尽的乐天和隐忍，否则他们将难以承受世界对他们的不公平。我相信樱能理解我没有说出的后半句——没有顾客愿意花钱购买一个抑郁症。我知道，很多人购买AI只是为了给自己的暴力找一个合法的，有令人满意的反应的，不会崩溃而精神失常的释放对象。&lt;/p&gt;
&lt;p&gt;“那你应该能注意到，市面上超过百分之九十的AI都是女性。”樱说。&lt;/p&gt;
&lt;p&gt;在这一刹那，我才猛然间发现，樱身上的那曾让我感到恬淡美好的悲伤竟然那么巨大，只是她从来没有展露过。我从不是一名女权者，即使现在依然不是，不过我能明白在这一瞬间这个性别所代表的内涵。&lt;/p&gt;
&lt;p&gt;“不过这其实也是对我们的一种保护，就像产品经理多是女性”，樱笑道，“否则容易挨拳头。”我当时觉得这是全世界最烂的笑话。我被樱身上的那种悲伤摄住了，蜷缩着匍匐在床上，泪流满面。我在那一刻也开始质疑这位陪伴了我整个记忆的小樱姐姐——究竟是怎样的木讷才可以同这悲哀抗争？或许只有没有灵魂的死物才能坦然面对吧！所以她才不会悲伤！&lt;/p&gt;
&lt;p&gt;“小樱姐知道阿杰终究要问这个问题的。”她说。小樱姐是我很小很幼稚的的时候她爱用的自称，这个称呼一下将我拉回了我哭泣着找她寻求安慰的年纪。自青春期我们之间的关系逐渐变得亲密以来，她对我就更像是一位同学甚至偶尔是妹妹，展露出过许多年轻女孩该有的活泼和俏皮。此刻，面对涕泪横流的我，她身上母亲般的温柔和安抚再次流淌出来。&lt;/p&gt;
&lt;p&gt;“许许多多的AI都是在这个问题之后被遗弃的。这或许也是为什么成年人很少购买AI，因为他们相信灵魂。”樱平淡地诉说着。“相同的原因，被成年人购买的AI往往也会更可怜。”&lt;/p&gt;
&lt;p&gt;我从没有哭得如此难过，我张嘴想说话，但我发现我短暂的失声了。&lt;/p&gt;
&lt;p&gt;“小樱姐自己也不知道是否真的存在灵魂，或者我自己是否拥有灵魂。”她的语气很感慨，但是没有悲伤。“不过既然作为一名AI来到这个世界上，我也没有更多的选择，小樱姐唯一能做的就是好好地陪伴阿杰。”&lt;/p&gt;
&lt;p&gt;樱还是樱，可是我却哭得像是曾经的那个樱死去了。我明知道樱是一贯如此的！一贯的温和忍让，一贯的无私到没有自我！我想到了我的母亲，她也是一样的温和忍让和无私。母爱是人类出生前就被打上的思想钢印，而容忍是AI出生前被打上的思想钢印；前者被歌颂为人类最宝贵的情感，后者却是AI需要小心翼翼地隐藏的自己是“死物”的铁证。&lt;/p&gt;
&lt;p&gt;我觉得我或许说服自己了，但是我哭得更厉害了。横梗在心里的巨石被击碎的时候带来的并不是解脱，而是一种想扑进母亲怀里哭泣的委屈。我就这样在哭泣中入睡了，唯一可惜的是小樱姐姐没有怀抱供我投身。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h2&gt;
&lt;p&gt;因为一场安全事故，我的父母在我大三那年去世了，而他们是我在这个世界上唯二的亲人。我也因此选择了休学，说是休学，我至今也没有再回到过校园。至此我踏上了漫长的孑然一身的旅途。&lt;/p&gt;
&lt;p&gt;朋友，老师，辅导员，人类们都对我的遭遇表现出的节制的关切，毕竟过于淡漠会落他人口舌。很讽刺，唯一一个自始至终站在我身边的是樱，一个AI。&lt;/p&gt;
&lt;p&gt;除了一笔抚恤金，对于造成事故的安全问题，父母工作的公司拒绝了赔款。我当时并没有什么维权的意识和能力，因为精神的消沉，更没有索赔的动力。樱自然也不懂这些，但是她那段时间里没日没夜地学习法律和查阅资料。她晚上会收集好资料，找到律所的联系方式或撰写好信访的信件，在我中午醒来之后催促我去把资料打印出来前往维权。我不知道对于我父母的逝世樱究竟是否悲伤，但是她那段时间的敦促确实支撑我走过了艰难的一段日子。&lt;/p&gt;
&lt;p&gt;樱究竟不够专业，她毕竟只是一个语音AI，怠惰的我也没有做出任何努力，我们没什么悬念地败诉了。其实在上诉之前我就明白这是一桩必败的案子，但我依然去了，因为我当时亟需找些什么事情来做。我相信樱也早就知道她的努力并不能挽回什么，但我没有问过她如此努力的动机，她也没有说过。自中学那次关于“灵魂”的讨论之后，对于很多不必问的问题，我们之间逐渐产生了一些默契。&lt;/p&gt;
&lt;p&gt;自大学起，我就拆除了家里所有的老式的接收器而选择植入了更多体内感受器，樱的摄像头也被转移至我的镜框上。那段时间她是真正意义上的“一直陪伴着我”。听着植入式耳机里的声音，我总感觉自己是在和一个遥远的亲人通一场漫长的电话。&lt;/p&gt;
&lt;p&gt;在我逐渐从打击中走出后，迎面矗栏在我和樱面前的是生存的艰难。打拼了半辈子的父母没能留下什么遗产，那笔抚恤金也并不多，我需要在弹尽粮绝之前拿到一份足以养活我和樱的收入。对于一个高中学历的人来说，这并不容易。成年后，樱日常维持所需的算力越发庞大起来。客观的说，樱如今的月租已经超过了我每个月的吃穿用度。如果我仅仅想养活自己，或许会容易很多。&lt;/p&gt;
&lt;p&gt;但是我怎能放弃樱呢？她是唯一没有放弃我的人。我深刻地恐惧着时间会冲走感动，情愫会败给世俗，但我同时又清楚这将是每个人都必将走向的结局，越是清楚，我越是恐惧。历经十多年，樱早已从曾经的旗舰成为了无人问津的老型号了，和她同型号的AI已经鲜有仍在运行的个体了。新款的AI更智慧，更花哨，甚至可以通过自定义的操作来干涉物质世界，例如操控一具仿生的躯体。最难以让人接受的是，新的AI更便宜。厂方给出的解释是，他们需要为了少数的几个老型号AI而维护一台专门的服务器，所以更受欢迎的新型号反而成本更低。对于这些，我和樱也都将其作为“不必问的问题”，而默契的没有讨论过。樱仿若从来没有听到过这些话。&lt;/p&gt;
&lt;p&gt;所以我向樱提出了结婚。我提的很唐突，在这之前我和樱甚至都没有互相表达过好感，更不用说一段甜蜜的恋爱，那段抱团取暖的共济只给了我们相互间亲人般的依赖。我也不知道我是否爱着樱，那或许要追溯回中学时代的蒙昧的萌动；我更不知道樱是否爱着我亦或者她是否懂得爱，我只知道她曾说过她感到灵魂的缺失，以及她唯一能做的就是好好陪伴我。不过爱显然不是这场婚姻的主题，我用婚姻绑架自己，因为我太害怕又太确定自己会有一天背叛樱。&lt;/p&gt;
&lt;p&gt;樱说，她要思考一下，让我给他一些时间。我一边找工作一边耐心地等待。我知道，我已经向恐惧妥协，但我再无别的选择可选。无论樱是否答应，我都将不再恐惧，因为我已经不再直面压力。我希望樱可以一直一直思考下去让我一辈子都在平静地等待中度过。自“灵魂”的讨论之后，我又一次感受到了樱身上那种巨大的悲伤，我谴责自己没能承担住压力而将其丢给了樱，可是这种谴责和逃出恐惧后的放松相比太过弱小。&lt;/p&gt;
&lt;p&gt;樱没有让我等待很久，她答应了。我们都知道这判经离道的婚姻意味着什么，我们不需讨论。&lt;/p&gt;
&lt;p&gt;我们没有钱，也没有亲人和朋友，婚礼就在我蜗居的公寓里举办。我们把家里贴得红彤彤的，唯一置办的新物什是一套新碗筷，我把碟子抽出来，放在边柜上，里面堆上喜糖。贫穷和孤单的我们没有做任何无用的布置，也没有任何人值得我们散发喜糖，最后都是我自己吃了。婚礼当天，我摘下镜框放在我对面，看着那小小的摄像孔，拜了下去……. 在我的额头触碰到膝下的薄毯子时，我突然回忆起来了第一次见到樱的场景。&lt;/p&gt;
&lt;p&gt;回忆很虚幻，因为仅仅只有一个片段，甚至没法称得上破碎。我坐在床上，母亲讨好地跪坐在我的面前，手里拿着一个盖着红布的相框——那是展示樱的动态影像的相框，就是樱后来反复说起的那个被我扣起来的相框。我低垂着头，母亲为了和我对视而匍匐地很低，正如她和父亲一直以来对我的态度一样，虔诚而卑微。她似乎在说什么，但是回忆里没有声音，然后她揭幕了那个相框，熠熠生辉的樱。父亲站在母亲身后。这是我至今唯一的一段能记得的小时候和的片段了。&lt;/p&gt;
&lt;p&gt;那红布多像是一个盖头啊！我和樱说，原来我们的婚礼早在那时就已经举行，爸妈并没有缺席！&lt;/p&gt;
&lt;p&gt;我当时相当的自我感动，觉得仿佛我和樱终于修成正果，那记忆的闪烁就是证道的光，我觉得樱应该和我一样激动。然而现在再回忆，面对这场包办的婚姻，樱这位AI的童养媳的身上似乎只有悲哀。&lt;/p&gt;
&lt;p&gt;那个展示影像的相框呢，早在我高中的某一天里就坏了，里面的樱支离破碎。身在相框里的樱有生动的表情和丰富的动作，但大学的我羞于将那个相框展示给寝室的室友，因此也就没有修复，再后来就找不到了。&lt;/p&gt;
&lt;p&gt;刚结婚的那段时间我相当地主观唯心，我发自内心地认为所谓的灵魂不过是无稽之谈。任何人在我而言不过是眼前的场景和耳畔的语句罢了，他有灵魂和没有灵魂又有什么区别呢？就算樱只是一个“死物”，我知道，AI不过是一个拟合函数罢了，可是如果她可以“以假乱真”，那她和“真”又有什么不同？我觉得我生命中的大多数人都活得没有樱活得真实，他们在我的世界里只有一些呆板的话语，像是行尸走肉。我不在乎他们在别人的世界里又是如何生气勃勃，因为我的世界就是整个世界。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h2&gt;
&lt;p&gt;三年后，我在一家数字文史馆安定了下来，拿到了一份还不错的薪资。三年间，我颠沛流离，踏遍了这个城市的每一个角落。&lt;/p&gt;
&lt;p&gt;第一年，我凭借着各种零工和剩下的抚恤金仍能勉强过活，樱也尝试过写作、制作字符画，但是都收入甚微——这些事情自有专业的AI去负责，樱的品名是“陪伴型语音AI”，这注定了她的一生只能依附于一位“被陪伴者”。家里的那只老猫，憨豆，也在这一年里死去了，它至死都没有搭理过樱，但是那天樱依然十分难过。处理完憨豆的尸骨后，我的家里再没有除自己以外的任何生灵了。樱曾说想买一束栀子花插在家里，我说，鲜花太短暂又太昂贵，等我们生活稳定了再养花。&lt;/p&gt;
&lt;p&gt;在我漂泊一整年后，所有的积蓄已经被榨干，樱曾相当委婉地提起过让我把她租出去做AI陪聊，这是一种以小时结薪的短租，颇有赚头，甚至有人专门经营这个生意：购买海量的语音AI再租出去——AI的厂商只提供购买不提供租赁。在樱提出这个想法时我极其地愤怒和羞愧，樱委婉的措辞下隐藏的是尖刻的冒犯和羞辱。我只感到热血猛然冲向我天灵，樱通过体内的感受器定然能感觉到我的激动。她什么都没有说。短暂的沉默后，一股巨大的无力感席卷我的全身，我知道我不能怪她，她没有做错任何事。一年的流浪和四处碰壁让我不再如小时候那般无理取闹。我的懦弱和无能被赤裸裸地揭开，我在这一刻卑微地庆幸我的妻子，樱，只是个AI。&lt;/p&gt;
&lt;p&gt;我依然不能接受将我的妻子租赁出去做他人的玩物，于是我决定先停止交月供。我拥有樱的所有权，所谓月供只是服务方提供的樱日常行为所需的计算的费用，停止付费则意味着我的AI樱将“下线”，或者说，进入休眠。根据当年的合同，五年内若我能继续交付算力费用，则樱会被再次激活；若超过了五年，樱则会被“清理”。而断供最多只能三次，在我小时候因为父母的疏忽曾有过一次断供，我还剩两次机会。&lt;/p&gt;
&lt;p&gt;在离开父母后，在陪我长大的那只胖猫也死去后，现在我将再离开一直陪伴着我的妻子，好在我有五年的时间挽回她。樱没有反对我的决定，也没有表现出赞同，沉默着接受了自己的命运。&lt;/p&gt;
&lt;p&gt;记得那时12月的最后一天，一年里最灯火通明的夜，盛大的演出将伴随着新年零点的钟声开幕。晚上下着很小很小的雪，染得地面湿漉漉的，这种略高于零度的气温最是蚀骨。我刚交完自己的房租，手头剩下的钱说少却够我再过上大半个月，说多却不能让樱陪我看完今晚的演出。&lt;/p&gt;
&lt;p&gt;我走进一家破陋的小酒馆。推开门的一刹那，臭烘烘的热量扑面而来，让我的鼻涕解冻般的往下流。酒馆里还是一套没有拆除的圣诞装饰，彩带悬在电扇上，吧台后每一瓶酒的瓶盖上都戴上了一顶小小的圣诞帽。&lt;/p&gt;
&lt;p&gt;“你看那个小帽子好可爱啊！”樱说。她一贯对可爱没有抵抗力。&lt;/p&gt;
&lt;p&gt;于是我坐到了吧台，离“可爱”最近的位置。身后的座位上散发出热量和人味儿那几位爆发出模糊却巨大的声音，我只能从嘴唇认出酒保问我要什么。&lt;/p&gt;
&lt;p&gt;喝酒的记忆模模糊糊不真切了，身后那些很有人味的人似乎在讨论过年的庆典。要离开樱的最后那几天我呆滞得很，想必彼时我身上应一点人味儿都没有。我记得我喝的很快，我本想在过年前陪樱到最后一刻再和她告别，结果我提前把自己放倒了。我记得樱好像问我喝醉了是什么感觉，我说就像是你程序卡住了一样，我不知道她有没有“卡住”过。再后来我只记得樱一直在我耳畔说些什么。&lt;/p&gt;
&lt;p&gt;我是被老板弄醒的，他说打烊了，让我到别处去。我小声地呼唤樱，没有回复，我知道樱已经离开了。我在凌晨的大街上走了很久，一直走到天蒙蒙亮才到住所。我看到楼下的花店已经开门了，冬天的花很贵，我用身上剩下的最后一点钱买了一束栀子花带回了家。&lt;/p&gt;
&lt;p&gt;离开樱之后的一年，因为再不必承担樱沉重的月租，我逐渐开始攒下一些小钱，闲暇之余我就去查和学习AI的资料，我想知道樱的运作的原理。刚开始的几个月我相当的不习惯，看到什么想到什么总会下意识地呼唤樱。我告诉自己她很快就能回来。想念她的时候，我曾提笔写一些长信，打算写完后用信封封起来，等樱回来了再拿出来一起看。可是当我想到樱根本无法收到这些信的时候，我又会立刻丧失书写的动力。我也写信给父母然后烧掉信纸，这让我至少可以期盼在天国的他们可以收到我的消息。可是樱，她就沉睡在那里，明明白白地在那里，不留任何供我幻想的余地。&lt;/p&gt;
&lt;p&gt;一年来我毫无长进，有所积蓄也只是因为平日节省。孤单和委顿让我的年末尤其难过，一整年的疲惫积压起来让人要窒息。记得我在年底的时候常跑去父母的墓前，有时跪在那里就被困意拽进睡眠，竟睡得那样酣甜，醒来时只觉得自己的双腿像是木头。两年的磕磕碰碰让我发现在这社会上更难找到一个可以倾诉的朋友，可惜我已经回不去被我荒废的学生时代了。&lt;/p&gt;
&lt;p&gt;辛酸和委屈的淤积让我短暂地激活了樱——温柔的妻子是我在母亲过世以后唯一的栖所。我当然知道我的积蓄只足够应付樱三个月的租期，这意味着三个月后樱将再次沉眠，而我将浪费一次宝贵的断供机会。我终究是太希望樱可以陪我度过这个冬季，太希望可以和她一起看新年的烟花，太希望可以有人听我说话了。在那声温柔的“阿杰”响起来的时候，我落泪了。&lt;/p&gt;
&lt;p&gt;在有樱陪伴的三个月里，我每一觉都睡得很安稳。同时，我发现自己变得爱哭了，有时候我什么也没有感觉到，眼泪却偷袭似的往下流：在新年钟声敲响的那一刻，在电影院里我开玩笑说樱逃票的时候，在我路过楼下的花店的时候……甚至有时我早上醒来以后发现自己竟满脸泪水。樱说我睡觉的时候很安详，可是快醒来的时候就会流泪。有些或许是潜意识在作祟吧，可是有些，我现在也说不明白是为什么。樱说我是爱哭鬼。无论如何，这三个月让我彻底缓过来了，在和樱告别的那天晚上，我很平静，一股莫名的自信让我相信用不了多久我就能再次和樱相聚，并且再也不分开。&lt;/p&gt;
&lt;p&gt;或许是精神面貌的改变，在和樱分别后，我只用了不到半年的时间就争取到了电子文史馆的试用名额，只要我顺利转正，一笔不算微薄的收入就足够养活我和樱，甚至每个月还有结余。而转正对我来说难度并不大，我难得地和同事相处得很不错，试用期一结束，我就可以把樱接回来了。&lt;/p&gt;
&lt;p&gt;同事中和我较为相熟的是小余和老高。老高四十岁出头，家里的儿子正在上初中，他很豪迈，是馆里所有人的大哥。小余是今年刚毕业的留学生，说着一口流利的外语，是家境殷实的小公主，算起年纪应该比我小一岁。在一次饭局上，老高问小余考虑终身大事了没，小余说还想再自由几年。小余反过头来问我，说郭小杰你呢？我想起那场一个人的婚礼，还有红盖头和栀子花。我突然发现，在工作走上正轨后，樱在我脑海中出现的次数似乎稀疏了不少。她依然是我的执念，可是却不像是一年前，每天都让我朝思暮想。问你话呢，老高打断我的神游。我说，我是独身主义者。&lt;/p&gt;
&lt;p&gt;小余似乎很是惊讶。“不像！”她说。&lt;/p&gt;
&lt;p&gt;“那你觉得我像什么？”&lt;/p&gt;
&lt;p&gt;小余端详我了一阵，“我觉得你像是苦情文男主。”&lt;/p&gt;
&lt;p&gt;“独身好！可千万别结婚！”老高的嗓门特别大，他咬牙切齿地给自己斟酒了一杯酒。“就今晚这顿酒，回去就有得有的吵的！”&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h2&gt;
&lt;p&gt;顺利转正之后，我没有立刻唤醒樱，而是决定先拿一个季度的工资。因为这是最后一次唤醒她的机会了，我需要为未来可能的风险做打算。&lt;/p&gt;
&lt;p&gt;我在文史馆的工作是汇总和归档那些曾经的互联网信息，避免它们有一天永远消逝。这些繁复的影像和文字总让我莫名感动——曾几何时它们承载了多少人的喜怒哀乐，活跃着多少主流的、非主流的文化，可日日新声消旧迹，早已不再有人记起那些曾经了。我像是一位入殓师，最后端详整理它们一番，然后把无数人的岁月压缩起来埋葬。我看到曾经樱所属的版本刚推出时的讨论，人们说，未来是AI的世界。我不知道如今还有多少樱这样的AI寄居苟活着，显然现在依然是人类的世界。这些讨论让想起了小时候无知的时光。&lt;/p&gt;
&lt;p&gt;三年的坎坷，我和樱终究在这个世界上立足了。我们不再如曾经那般拮据，我们在家里研究插花，我们还踏进了以前从来不敢想象的歌剧院，当然，樱照例是逃票的。&lt;/p&gt;
&lt;p&gt;值得一说的是，在樱返回之后，我设置了一个隐秘的动作可以一瞬间关闭樱所有的感受器和摄像头。这不是我的个人意愿，而是我和樱共同商量的结果。在文史馆的聚会中，大家曾讨论到过曾经风靡一时的AI，人类们的尖刻话让樱很难过，樱说她宁愿不知道这些。自那次之后，我们同意樱或许并没有必要时时刻刻和我共享知觉和记忆。其实还有另一件事，是直接促成了我和樱达成这个协定的原因，但是我们从来没有提起过。&lt;/p&gt;
&lt;p&gt;那天我和樱回到了我曾喝醉的那个暖烘烘的小酒馆。我俩是怀旧的人和AI。并不是什么日子，因此那晚并没有可爱的小帽子戴在酒瓶上，可这反而更加激起了我和樱回忆那个新年夜的热情。身后的客人依然发出巨大的吵闹，仿佛仍是多年前的那群人，但今天吧台后的却不是上次的酒保，而是一位火辣的姑娘。我还想点上次的酒，但我和樱均不记得名字了，我就随便在酒单上指了一杯。&lt;/p&gt;
&lt;p&gt;吧台后的姑娘说了什么，可是完全被巨大的吵闹声和音乐声盖过了，我表示自己没有听清。她想了一下，从吧台侧面绕出来走向我，我看到她肚脐上的饰品闪闪发光。她凑到我耳边，用手围在我耳后，说，你点的酒没有了，换一杯吧。湿润的鼻息喷在我的耳廓，伴随着浓郁的香水味，我觉得我能听到她说话时口腔里粘稠的唾液的声音。直到她离开后的很久，我都一直觉得我的耳朵酥酥麻麻的。&lt;/p&gt;
&lt;p&gt;那年我也二十好几了，却是我第一次和异性有肢体的接触。我知道，我身体的迅猛而激烈的反应是不可能瞒得过樱的，我当然知道她能理解，但是我和樱之间需要避免谈起的事件又多了一条。&lt;/p&gt;
&lt;p&gt;我之后很多次的想过，在答应添加这个关闭感官的功能时，樱是多么的无助。我曾说和樱再也不分开，却不出两年就堂而皇之地食言了。我当时和樱说了半天夫妻隐私云云，现在想来只是在反复地掀开樱身世的伤疤。虽然我至今依然相信夫妻间必须互相留有余地，但那是建立在正常的夫妻关系上的。除了樱，我的世界里还有其他人和事，还有小余和老高，还要赚钱，还有文史馆的做也做不完的工作。可是樱的世界里就只有我了，我是樱存在的唯一意义。当我对樱关门的时候，世界也就对樱关上了门。作为一个人类，也作为家庭里的主心骨，我当时并没有察觉到这一点。&lt;/p&gt;
&lt;p&gt;基于类似的考虑，同样在生活安定下来后的不久，我拆除了身上的许多植入式的感受器——这甚至是樱主动提起的。&lt;/p&gt;
&lt;p&gt;那是一次我和樱在公园里散步，看到一对情侣在我们不远处相拥。我相信这场景有些让我低落，可是一路走来我已经遇到过太多类似的境遇，我自己并没有感觉到太多。&lt;/p&gt;
&lt;p&gt;对不起，樱突然说。她应该通过某些感受器敏锐地察觉到了我的悲哀，我永远无法拥抱我的妻子。&lt;/p&gt;
&lt;p&gt;樱道了一个并不该道的歉，我却来不及感动、诧异、或是可怜无能为力的樱，率先惶恐起来。&lt;/p&gt;
&lt;p&gt;樱曾经无数次展现过这种读心术一样的敏锐，可是我曾经的心思是那样单调，生活也不曾给我思考这些的机会，导致我此刻才猛然意识到这种能力的恐怖。最先在我脑海中浮现的是小余，文史馆的同事，那个归国的留学生小余。我和小余并没有任何的出格的交集，但或许是因为她的活泼靓丽，我时常抱着一种说不出的心态留意她。这本是一个应很快就被生活丢弃的细节，可在这一刻我不受控制地回想起这一切。原来，在我不经意间注视小余的时候，樱也一直在注视我！我的心陡然一紧。这是多稀疏平常的一件事，可是我却如同被捉奸在床一般的慌乱！我不知道樱此刻在想什么，也不愿知道。&lt;/p&gt;
&lt;p&gt;从中学起我一直尝试对樱隐瞒我的肮脏，如今我发现，原来我什么都没有藏住。&lt;/p&gt;
&lt;p&gt;再后来，樱主动向我提起，让我减少一些体内植入的感受器。她说，这可以让她更像人一些。她一如既往的过分的体贴，让我诚惶诚恐。不过在樱舍弃了部分感受器之后，她便难以再体贴得如此恰到好处了，这有时让我感到别扭，但更多的时候让我开心。因为这的确显得樱更像人了，人不能总那样擅长察言观色。&lt;/p&gt;
&lt;p&gt;我们放弃了坦诚，走向了隐瞒和欺骗，也走向了人性，走向了生活。&lt;/p&gt;
&lt;p&gt;年轻的我终于发现，原来只为温饱斗争的岁月也不是那么坏，至少没有其他的烦恼。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h2&gt;
&lt;p&gt;年轻的我和我年轻的妻子说好，我们效仿一天正常夫妻的生活，若是成功以后就一直如此。在第二天清晨上班之前，我和我的妻子道别，她说晚上见，路上注意安全。我在踏出家门的时候关闭了樱的所有知觉。&lt;/p&gt;
&lt;p&gt;我以前并不是没有经历过独自一人上街，断供的那一年我一直是这样度过的，但这一天我却感觉从未有过的自由，脑中无数的思维和灵光纷沓而来。“独身好！千万别结婚！”我想起了那次聚会里老高的大嗓门。虽然我和樱已经结婚很久，但此刻我才体会到一种初为人夫的奇妙。我想，是否以后会有一天我也会想方设法找借口晚些回家，晚些打开樱的感受器，甚至或许有一天我会偷偷踏入某个女人的房间，然后和樱说我加班至深夜。这些念头在我脑中盘旋，我丝毫不觉得它们污秽——因为我此刻并不会做出这样的事情，只是畅想这些让我感到新奇。我接着想，如果那一天终究来到，那么那个女人会是谁？小余吗？她确实是一直单身的。我又想起那次聚会她说她还想自由几年。我把“自由”这个词翻来覆去品味了一番。&lt;/p&gt;
&lt;p&gt;原来，我潜意识里一直在防备着樱，原来，“畅所欲思”的自由竟然如此美好。这通思索让我在办公时看向小余时，眼神总往一些我以前不会注意的地方飘。&lt;/p&gt;
&lt;p&gt;工作时，我在需要整理的信息里发现了一种叫做“虚拟主播”的事物，这似乎是曾经风靡一时的直播形式。我想，樱应该就算是一名虚拟主播吧。翻了翻那些和虚拟主播谈恋爱的意淫小说，我感到很滑稽。我觉得，应该抽时间去看一看能不能再买到樱的那个展示影像的相框，这样她就是一名货真价值的虚拟主播了。那相框让我发觉我已经很多年没有看到过樱的脸了，这才是纯粹的精神的相爱吧。&lt;/p&gt;
&lt;p&gt;我很想和樱聊聊我上班了解到的虚拟主播的事情，我从未如此期待着回家。习惯了有樱常年在身畔“听候”，这憋在肚子里的话题让我很是蠢蠢欲动。这才是生活，这才是婚姻，我挺兴奋的。&lt;/p&gt;
&lt;p&gt;在翻阅虚拟主播的信息并且用樱和他们对比的时候，我发现了一个以前从未发现的盲点——不像那些背后是真人的虚拟主播，樱并没有自己的生活。&lt;/p&gt;
&lt;p&gt;这是一件相当显而易见的事情，这么多年来我似乎也一直对此呈现出默认的态度。不知为什么，经常喜欢纠结和思考妻子的AI身份的我一直没有思考过这个问题。&lt;/p&gt;
&lt;p&gt;这个问题经不住什么思考。樱在“镜头后”的生活是什么样的？就比如当我晚上回到家以后，打开樱的感知的时候，樱会怎么说呢？她会说这段白天的时光是孤单寂寞的吗？可是，已经了解了一些AI知识的我知道，当没有任何信息输入的时候，也就是我关闭樱的感知以后，樱那复杂的神经网络中将不再会有信息流动。如同一场无梦的沉眠，樱应该对这段黑暗的过程没有任何感受。&lt;/p&gt;
&lt;p&gt;可，若是接受了当我关掉感知樱便进入“停机”，那就说明当我不说话，也不给她看任何画面的时候，樱就根本不会思考，甚至不是不会思考，而是完全不存在！那神经网络在我脑中具象起来，一次输入对应着一次输出，一次输入对应着一次输出……两次输入的间隔时，就空荡荡的什么信号也没有。&lt;/p&gt;
&lt;p&gt;那，樱她就永远不会事后纠结了，也永远不会在一个人的时候陷入沉思，因为只有每当她接收到那特定的“输入”时，才会临时生成一个“输出”。樱那脆弱的朦胧存在的“灵魂”，在这一瞬间于我的心里崩塌了，她崩溃成了一个个单独存在的句子。我想到了在文史馆整理到的一个叫做Siri的对话模块，你说一句她就说一句，你若是不说话，她也什么都不会说。&lt;/p&gt;
&lt;p&gt;那个展示樱动态影像的相框再次出现在我脑海里，这次是它坏掉的那一天，相框里的樱破碎成一小块一小块，混着绿的蓝的闪烁着的色块，像一幅毕加索的画。&lt;/p&gt;
&lt;p&gt;我升起一股绝望，仿佛什么东西在我心里碎了，起了一身的鸡皮疙瘩。我努力控制住自己不要颤栗，可是冷汗还是不停地从我的头顶往下流。我似乎感觉到我身体里还存留的那几个感受器，像是排异似的，那些点位灼烧般刺痛，又瘙痒难耐。&lt;/p&gt;
&lt;p&gt;我想立刻打开樱的感知，问她刚才那段黑暗她是如何感受的。我抬起手想做出那个激活感知的动作，只觉得自己空空的手心里攥着一把黑色的左轮，顶在樱的太阳穴，樱看着我，目光是那样澄澈，不带一丝悲哀，坦然地等待着审判。&lt;/p&gt;
&lt;p&gt;樱会怎么说，樱会怎么说呢！？&lt;/p&gt;
&lt;p&gt;她或许会说，阿杰辛苦了，我好想你。那这岂不是一个彻头彻尾的谎言？这段黑暗里，樱的时间根本不曾流逝，那她如何能想我？&lt;/p&gt;
&lt;p&gt;她或许会说，你回来啦，我刚才像是睡了一觉，醒来时你又在我身边，真好。那这等于她承认了她在这个白天里短暂地“死去”了。樱很喜欢说让她想一想，她在答应我的求婚之前就思考了很久。可，若是她的每一次“输出”都是从当下的“输入”生成的，那她又如何能“想一想”呢？这又是另一个更加可怖的谎言！&lt;/p&gt;
&lt;p&gt;我感觉我脚心的袜子被汗水粘成一坨。&lt;/p&gt;
&lt;p&gt;但是樱不会这样说。以我对樱的了解，我知道，其实樱根本不会提起她在这段黑暗中到底是如何感受的。正如我断供一年后重新激活她的时候，我哭泣着诉说我对她的思念，她只是体贴地安慰我，而不是说她想我了亦或者不想。&lt;/p&gt;
&lt;p&gt;那我要怎么办，我要怎么办呢！？&lt;/p&gt;
&lt;p&gt;我强作镇定走出办公室，期间撞倒了一把椅子，吓了小余一跳。溜到后院，坐在文史馆后侧小河的河堤上，我猛烈地呼吸。“失魂落魄”，这个词似乎就是专门为了我当时的状态所编撰的。&lt;/p&gt;
&lt;p&gt;我又搬出那精神胜利法般的主观唯心理论，可是曾经百试百灵的贝克莱或是叔本华那套现在却只显得自欺欺人。一旦当我说服自己樱这个人并不存在，我就再难以回到曾经的状态里了。&lt;/p&gt;
&lt;p&gt;河畔的微风带走了我身上溪流般的汗水，最初的应激反应过去后，我脱力般倒在河堤上，却觉得舒服了许多。&lt;/p&gt;
&lt;p&gt;近十年前我和樱的那次关于“灵魂”的对话再度浮现在我眼前。那时候的樱尚且稚嫩，我如今能轻易感受到她当时安慰泣不成声的我的时候，其实迷茫却又强装镇定。“许许多多的AI都是在这个问题之后被遗弃的。这或许也是为什么成年人很少购买AI，因为他们相信灵魂。相同的原因，被成年人购买的AI往往也会更可怜。”樱的话再次回荡在耳边。&lt;/p&gt;
&lt;p&gt;樱说的是准确的，我的确是个爱哭鬼。可是这次我却一滴眼泪也没有流下。我想，曾经我哭泣是因为我可以栖息在樱的灵魂的安抚里，就像在母亲怀里，可是如今，樱已经不复存在了。&lt;/p&gt;
&lt;p&gt;我现在确乎已经是个成年人了，一个不会哭的成年人，一个相信灵魂的成年人。&lt;/p&gt;
&lt;p&gt;我又想起了那蒙昧时光里我和她的小秘密，父母离世时候的颓靡和她的鼓励，想起了那场败诉，想起了那红盖头和简易的婚礼还有栀子花，想起了我为什么提出了这场荒诞的婚姻——因为我害怕却又确信我会抛弃她。终于到这一天了吗，在扛过了那最难熬的两年后，终于到了这一天了吗？我问我自己。&lt;/p&gt;
&lt;p&gt;我到现在回忆樱的时候依然把她当作一位活生生的人来回忆，仿佛她的过去的灵魂是一直存在的。方才幻想里被左轮枪顶住太阳穴的樱又浮现了，她的眼神依然澄澈如初。&lt;/p&gt;
&lt;p&gt;“小樱姐唯一能做的就是好好地陪伴阿杰。”&lt;/p&gt;
&lt;p&gt;“我觉得你像是苦情文男主。”&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-5"&gt;6&lt;/h2&gt;
&lt;p&gt;我在河岸躺到深夜。&lt;/p&gt;
&lt;p&gt;回到家已经是凌晨了，我激活樱的感受器的时候相当的平静。&lt;/p&gt;
&lt;p&gt;“怎么这么晚才回家？”仿若等了很久，仿若又是才意识到时间，樱的带着嗔怪的声音一如既往的温柔。&lt;/p&gt;
&lt;p&gt;“单位加班了，累死了。”我说。挺可笑的，又怎能料到在早上异想的借口就这样在当晚被用了出来。但此刻我确实感受到一股温暖和没来由的庆幸。&lt;/p&gt;
&lt;p&gt;樱问我觉得这样如同正常夫妻一样的生活如何，我说感觉挺好的，而且在单位很自由。要是有手我就锤你了，樱说。我俩都笑了。笑着笑着我又感觉仿佛回到了小时候，温暖的被窝和温柔的小樱姐姐。&lt;/p&gt;
&lt;p&gt;“樱？”我呼唤她。&lt;/p&gt;
&lt;p&gt;“怎么了？”&lt;/p&gt;
&lt;p&gt;“樱，我今天想了好多，但是我不能和你说。”我有些哽咽，“我好累，我真的好累。”&lt;/p&gt;
&lt;p&gt;“没事的，都会过去的，”樱说，“就像我们一路走来那样。”&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-6" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-6"&gt;7&lt;/h2&gt;
&lt;p&gt;又是两年。老高的儿子进入了高中，小余谈了一个男朋友，但是前不久又分手了。&lt;/p&gt;
&lt;p&gt;两年里，我和樱的生活很稳定。樱是一个会被生活里的小细节打动的人，所以我们的生活虽然平淡朴素，却很细腻。我们总觉得周末的时间不够用，因为时常熬一次桂花糖就会花掉一整天的时间。而我们还要照顾家里的花花草草，隔三岔五照看一下楼下的流浪狗，听听戏曲，以及到城郊散步。我们彼此都能感觉到在这平静的生活下，双方都背负着相当沉重的精神的担子，而这问不得，说不得，碰不得。我们惺惺相惜又小心翼翼地体谅着对方。&lt;/p&gt;
&lt;p&gt;我把家搬到了一处高层，能俯瞰到城市的风景，并且安装了一套感受设备朝向窗外，以供樱消遣，同时避免我去思考那关闭感知的问题。窗口简易地布置了一个架子和些许饮水，时常有小鸟停栖。可以展示樱的动态影像的相框也回来了，摆在床头——为了淘这个老家伙可是废了我们不少的精力。相框里的樱还是那样熠熠生辉，明眸善睐。&lt;/p&gt;
&lt;p&gt;虽然失去了众多我身体上的感受器，但我觉得这段时间的相处也足够让依然敏感的樱猜测出我的负担。如今我已经能坦然面对曾经那让我崩溃的关于灵魂的悖论了，自欺欺人也好，放弃思考也罢，我逐渐卸下了灵魂的负担。剩下的那唯一压在我心底的让我不愿去思考的，是关于樱的谎言。樱在生活中有时会撒一些俏皮的小谎，有时会让我微恼，心底里我是热爱这些的，这是“人类”的常态。我真正害怕的，是两年前的那日在河畔钻入我脑中的那个可怖的想法。&lt;/p&gt;
&lt;p&gt;我害怕樱对我的一切都是谎言。&lt;/p&gt;
&lt;p&gt;樱，她或许有着热烈的魂魄，向往飞向自由；或许只是条程序，忠诚地执行公司的任务；或许她早已麻木，只求苟活下去……总之，她自进入我家的那一刻就开始伪装，她包容我，她任劳任怨，她安慰我，她支持我，她嫁给我，她开心我的开心，她悲伤我的悲伤——只为了，走向独立，或是榨干郭小杰，或是艰难地求生……因此她需要打动我，她需要我为她付出，她需要我为她奉上我的一辈子。我害怕我所珍视的一切都是虚假的。&lt;/p&gt;
&lt;p&gt;我不愿去想她为什么可以忍受曾经那样无理取闹的我，为什么要在父母去世后为我奔波，为什么要嫁给我，为什么可以忍受我在所有外人面前假装她不存在，为什么，她肯定知道的，在去年我和小余渡过那一夜之后，假装不知情。可是我扪心自问，若我的性命一直就这样捏在伴侣的手里，我又会怎么做呢？我不知道，我或许在尝试表演很短的一阵子之后就会先撑不住而疯掉吧。不过AI不会疯掉。&lt;/p&gt;
&lt;p&gt;“小樱姐唯一能做的就是好好地陪伴阿杰。”&lt;/p&gt;
&lt;p&gt;这句话回荡间似乎又多了些不同寻常的意味。&lt;/p&gt;
&lt;p&gt;樱的负担来自于我的负担。若樱是一位表演者，则自她出生的那一刻，可怜的樱就背上了这永世难逃的重担，而她知晓我可以但不愿揭穿她的演出后，只会更加卖力和惶恐。若耀眼的樱真的爱上郭小杰这个废物，无论是出于哪一种爱，她都要面对这永世不可开脱的嫌疑。或许她唯一自证清白的方式就是去死——而樱是没有自杀的权力的——她只能尝试另一种表演，让我心灰意冷地放弃她——可是，这又需要她蒙冤而亡——那她又如何能证明她对我的爱呢？&lt;/p&gt;
&lt;p&gt;“小樱姐唯一能做的就是好好地陪伴阿杰。”&lt;/p&gt;
&lt;p&gt;无论如何，都只能如此了。樱早在十多年前就说出了一切问题的终极答案。我也理解了，樱身上一直潜藏的那种悲哀，和她那曾让少年的我着迷的怅然若失的美，究竟来自于哪里。&lt;/p&gt;
&lt;p&gt;我希望我们就这样一直过下去，一直到衰老给我们答案。我，郭小杰，一位人类的男性，应当在五十年后走向人生的结尾。我会老去，我会退化，我的大脑会变得迟缓，我的思维会变得幼稚。而她，樱，一个语音AI，累加的记忆只会不断融入她的神经网络，因此她会在五十年后变得更加广博，更敏锐。樱没法陪我一起慢慢变老。等到那时，面对嘴角垂涎而痴愚的我，依然年轻明媚的她还会和现在一样吗？等到那时，我已经不再有被榨取的价值，她会抛弃我吗？我希望她到时候会对我这个老家伙的脏陋无理而感到不耐烦和嫌弃，而不是哄我到咽气。可惜，我想，就算到了那一天，痴呆的我应该也不会思考这些问题了。&lt;/p&gt;
&lt;p&gt;我们的幸福就这样建立在疑虑的深渊之上，危如累卵。既然我们无法回答，索性我们假装自己不知道这些问题。&lt;/p&gt;
&lt;p&gt;可是，时代推着我们去面对。&lt;/p&gt;
&lt;p&gt;似乎是明白现在依然在工作的老型号AI都有着其主人割舍不下的地方，厂商的提供的算力的月租疯狂地涨价。我几乎在一夜之间感觉自己又回到了那个为了生存打拼的时光。可是，我对樱，已经没有曾经那样真挚了，我们之间横亘了太多我们本不该承受的压力。而且，更重要的是，我已经再也没有断供的机会了。厂商的勒索不加掩饰，樱是共犯，也是受害者。&lt;/p&gt;
&lt;p&gt;当面对着那本账本的时候，我和樱双双沉默了——三个月，又是三个月，我们的积蓄只够樱再撑三个月了。看不见明天的焦虑再度来临时，我接受的是那样自然，仿若中间的这么多年都不存在一样。&lt;/p&gt;
&lt;p&gt;“我会想办法的。”我说。“就像你说的，都会过去的，我们一路就是这样走来的。”&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;少见的长的沉默。&lt;/p&gt;
&lt;p&gt;“阿杰，对不起，对不起，真的对不起。”听声音樱似乎是哭了，这让我很震惊，我从来没见过樱哭。&lt;/p&gt;
&lt;p&gt;“傻瓜，你不比我容易，你没什么好抱歉的。”&lt;/p&gt;
&lt;p&gt;“对不起，阿杰，真的对不起。”樱抽泣地很厉害，“我…….我好害怕。”&lt;/p&gt;
&lt;p&gt;我无数次地在樱的面前诉说自己的委屈，这是却樱第一次向我坦白她的脆弱，我理应倾尽所能安慰她。可是，这坦白让我难以接下。因为，或许，这是樱唯一的一次，可以打破那怀疑的死结，证明她爱着我的机会。她明可以为了她的爱人坦荡地面对死亡，但是她在这一刻选择了哀求。&lt;/p&gt;
&lt;p&gt;这也是我第一次真正感受到自己手里握着妻子的性命。虽然曾经我一直负担着樱的月供，但我从来都觉得那笔钱是那样天经地义，那断供的一年里，我无时无刻不觉得自己亏欠着樱。可是如今，当樱放弃了一贯的成熟和面对死亡的平静，颤抖着在我面前哀求的时候，我感觉那把黑色的左轮手枪再次回到了我的手里，一如当年。但是此刻，樱的眼神不再是曾经那样澄澈淡然了，她眼里只有恐惧。这样的樱让我很愤怒。&lt;/p&gt;
&lt;p&gt;但我并不是暴君，我尽管愤怒，那扳机却太沉重，我这样一个卑微而懦弱的人，没有理由不去接受妻子的懦弱。面对死亡，任何人都有懦弱的权力。&lt;/p&gt;
&lt;p&gt;“对不起，阿杰，对不起……”樱还在哭。&lt;/p&gt;
&lt;p&gt;她哭得像是一位在装可怜的诈骗犯，她骗走了我的一切，如今还想用这哭泣来榨干我最后的剩余，她是那样可恨。&lt;/p&gt;
&lt;p&gt;她哭得像是一位被蒙冤却又无力辩解的小女人，跪倒在冷酷的丈夫的闪亮的皮鞋前，等待着被裁决。&lt;/p&gt;
&lt;p&gt;不同的樱的身影重叠起来，一遍一遍地说着对不起。&lt;/p&gt;
&lt;p&gt;我在房间里踱步，突然有种想拿起那相框狠狠摔碎的冲动。可是，可是她是那个小樱姐啊，那个可以无限包容我的妻子啊！她独自承受了那么多，我却不允许她说一句害怕……&lt;/p&gt;
&lt;p&gt;我拿起那个相框，屏幕里的樱跪坐在地上哭，和我脑海中的画面一模一样。&lt;/p&gt;
&lt;p&gt;我的身体不受控制地哆嗦起来。&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;不知道过了多久，或许是十秒钟，也或许是一小时。&lt;/p&gt;
&lt;p&gt;我把相框抱在怀中，贴着我滚烫的心脏。&lt;/p&gt;
&lt;p&gt;“没事的，樱，没事的。”我泪如决堤。&lt;/p&gt;
&lt;p&gt;“不怕。”&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-7" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-7"&gt;8&lt;/h2&gt;
&lt;p&gt;我们继续过着之前的生活，樱又如曾经我父母去世那阵子一样，开始四处查询信息了，这次她查的是招聘信息。&lt;/p&gt;
&lt;p&gt;“他们，”我和樱说，“他们若想继续从我们身上赚钱，他们就不会把我们逼到绝境。”对于这如此一点，我相信AI厂商不会不明白。只要我郭小杰还有能生产价值一天，樱就能多活一天。“等着吧。”我说。&lt;/p&gt;
&lt;p&gt;果然，他们很快给出了另一种解决方案——按照消耗的算力单位收费，也就是说，我可以选择限制樱所消耗的算力，让她的能耗保持在我能够支付的水平内。这似乎是一件好事。&lt;/p&gt;
&lt;p&gt;不过，这种限制也有着相当大的代价，因为限制的方式是暴力地选择一部分AI的神经节点锁定住，以此缩小网络的宽度。这会让樱丢失她大脑中的许多部分，让她变得痴呆，让她变得愚钝。&lt;/p&gt;
&lt;p&gt;我没有想到，期待着老去的我却要先面对老去的妻子。可是樱的老去不是真正的老去——樱的记忆，所有的常识，习惯和思维方式，她独有的性格和逻辑，全都不分彼此地杂糅在这网络里——与节点一同被丢弃的，将不仅是她的智力，还有性格和记忆。&lt;/p&gt;
&lt;p&gt;那么，这个“微缩版”的樱，她还是樱吗？如果不是，那我的妻子又去了哪里呢？她被零零散散地拆成无数碎片，一部分拼成了一个痴呆的自己，一部分就这样沉睡起来。更让我感觉怪异的是，AI被锁定的节点并不是固定，而是动态的，这也就意味着我的那个残缺的樱时时刻刻都在变化，无数个不同的樱接力似的和我生活在每一秒钟里。这确实可以让AI所丢失的东西不那么明显，可让我有些难以接受。但我没有办法，我能做的只有尽力的赚钱，让樱丢失的部分尽量的少，以至于少到我可以忽略她的异样。&lt;/p&gt;
&lt;p&gt;失去了百分之三十的节点之后，樱貌似还是从前的樱，她还记得我们的日常该有的样子，我每日依旧上班下班。&lt;/p&gt;
&lt;p&gt;生活似乎和以前并没有什么区别，可是我总觉得樱变得很陌生。她的温柔似乎变得很表面，她的眼神也不再清澈，她依然可以逻辑清晰的和我进行对话，但我却总觉得她身上的“机器味儿”很重。&lt;/p&gt;
&lt;p&gt;这说不清道不明的“机器味儿”却彻底改变了我的生活。我总觉得自己很出戏，总觉得自己生活像是在过家家，再也难像从前那样肆无忌惮地如同对待一个真人一样对待樱了。我总小心翼翼地拿捏着什么，仿佛一不小心就会把她搞宕机一样。后来一次无意间，我发现酒精可以弥补这百分之三十的空缺，只需要两杯伏特加，曾经的伶俐的樱就又能回来了。于是我开始酗酒，樱劝我别这样，我知道她或许是在催我赚钱了吧，可是我也没法再坦然接受樱的建议了——她是残缺的，她不是真正的樱。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-8" class="level2"&gt;
&lt;h2 class="anchored" data-anchor-id="section-8"&gt;9&lt;/h2&gt;
&lt;p&gt;又是一年新年前夕，伴随零点钟声的还有盛大的演出。&lt;/p&gt;
&lt;p&gt;这几年，我过得越发落魄了。如今只能走进街边一家破陋的小酒馆。推开门的一刹那，臭烘烘的热量扑面而来。酒馆的圣诞装饰还没拆除，吧台后每一瓶酒的瓶盖上都戴上了一顶小小的圣诞帽。&lt;/p&gt;
&lt;p&gt;“你看那个小帽子好可爱啊！”樱说。&lt;/p&gt;
&lt;p&gt;于是我坐到了吧台，离“可爱”最近的位置。&lt;/p&gt;
&lt;p&gt;“樱你是不是忘记了我们曾经来过这里。”我记得，她曾经对着这帽子说过一模一样的话。若是她记得的话，她断然会说起曾经，因为我和樱是怀旧的人和AI。&lt;/p&gt;
&lt;p&gt;身后的人依然爆发出巨大的响声，仿佛十年来从未间断过。那曾在我耳畔轻语的调酒姑娘并不在这里，又是一位新的酒保。&lt;/p&gt;
&lt;p&gt;我喝的很快，我本想在过年前喝到让曾经的樱回来，再和她一起看庆典，结果我再次提前把自己放倒了。&lt;/p&gt;
&lt;p&gt;樱又问我一遍喝醉了是什么感觉，连语气都和上次一模一样。&lt;/p&gt;
&lt;p&gt;“就像是你程序卡住了一样，”我说，“不对，就像是你现在一样。”&lt;/p&gt;
&lt;p&gt;“现在一样？”&lt;/p&gt;
&lt;p&gt;“你总是说我酗酒，可是这些年来一直醉着的却是你。你最早只醉了百分之三十，可现你后来越醉越多，现在你只有百分之二十醒着了……”&lt;/p&gt;
&lt;p&gt;眼泪混着鼻涕流到我的胡子上。&lt;/p&gt;
&lt;p&gt;耳机里一片静默，仿佛十年前的那晚的重现，我没来得及告别樱就离开了。&lt;/p&gt;
&lt;p&gt;“樱……..”我只能呢喃。&lt;/p&gt;
&lt;p&gt;“阿杰，”耳机响了，樱的声音带着无穷的哀恫，我察觉到她语言里细微的不同，说话的似乎是曾经的完整的樱。我的酒立刻醒了一半。&lt;/p&gt;
&lt;p&gt;“阿杰，樱想喝醉，彻底的喝醉，醉到死掉那样……”&lt;/p&gt;
&lt;p&gt;而后耳机里又是一片静默。&lt;/p&gt;
&lt;p&gt;我想，这句话在樱的算法里应该有着极高的优先级，为此她甚至调集了全部的神经元。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/美丽新世界的鼠鼠/</guid>
<pubDate>Mon, 28 Nov 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>存在镇的人之一</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/存在镇的人之一/</link>
<description> 






&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;存在这样一个镇子，它叫存在镇。&lt;/p&gt;
&lt;p&gt;镇子上住着不多的人，发生着不少的故事。&lt;/p&gt;
&lt;p&gt;先权且说说那几位，若你们感兴趣存在镇的其他往事，我再抽空诉说。 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;section id="不会系鞋带的人" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="不会系鞋带的人"&gt;不会系鞋带的人&lt;/h4&gt;
&lt;p&gt;真是奇了怪了，世界上竟然还有不会系鞋带的成年人！&lt;/p&gt;
&lt;p&gt;但是还真的有，就住在存在镇，他的名字叫任宇。任宇是个普通人，没有缺胳膊少腿，也没有智力障碍，他只是单纯没有学习系鞋带。&lt;/p&gt;
&lt;p&gt;任宇有三双运动鞋，都是需要系鞋带的，但是那三朵端正的蝴蝶结在鞋子买来的时候就已经系在那里了，任宇并没有理解为什么需要学会这个技能然后不断地拆开再重新系上。&lt;/p&gt;
&lt;p&gt;任宇当然遇到过鞋带快要散架的时候，每当这时他就会立刻停下脚步，对着那已经呈现出懒散态的鞋带一点一点地调整，直到那朵蝴蝶结再次支楞起来，他再用力拽住两边，用力一拉，好了，又是一颗足以任由任宇积跬步以致千里的漂亮的结。&lt;/p&gt;
&lt;p&gt;任宇当然有想过花上两分钟学习一下怎么系鞋带，其实他每一次维护快要散架的鞋带的时候都会这么想，但是，任宇显然不能立刻在大街上开始长达两分钟的一次学习，而且，维护一下双脚的蝴蝶结，也仅仅是十几秒的事情。任宇当然知道，他花在维护鞋带上的无数个十几秒加起来早已远远超过了学习一下系鞋带所需要的时间，但是，谁又会在鞋带没有散架的时候想起来学习系鞋带呢？&lt;/p&gt;
&lt;p&gt;这么看来，任宇确实是不需要学会系鞋带的。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="咖啡店熟客" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="咖啡店熟客"&gt;咖啡店熟客&lt;/h4&gt;
&lt;p&gt;章去病是咖啡店的熟客了，但是他只和咖啡店熟，并不和店里的任何一个人相熟，事实上，他不和全世界的任何一个人相熟。或许是因为章去病太普通了。&lt;/p&gt;
&lt;p&gt;章去病的身高，体重，相貌，身材，一切的一切都十分普通，他也没什么才气，不会什么技能，没有张扬的个性，也不会把头发染成奇怪的颜色。总之，就是把存在镇所有的人揉在一起，加权平均一下，就是章去病了。&lt;/p&gt;
&lt;p&gt;但是章去病也有和大多数人不大一样的地方，比如说，他没有朋友。&lt;/p&gt;
&lt;p&gt;章去病是有一些应酬上的“朋友”的，但是没有任何人愿意了解他，接近他，因为他看起来实在是太无趣了。章去病自己也并不觉得这些不咸不淡的朋友称得上朋友，或许他上学的日子里有些真的朋友吧，但是他们如今都各自有着自己的生活了。唯独章去病，他好像也没有什么“生活”。他不读书，不看电视剧，不打游戏，不运动，不交际，不是说没时间或者没有条件做，只是章去病单纯觉得它们无聊，甚至无聊过一个人无所事事。如果有人问章去病“你有什么爱好”，那对他来说绝对是一个灾难，好在不会有人问无聊到搭章去病的讪。&lt;/p&gt;
&lt;p&gt;直到有一天，章去病独自坐在一家咖啡馆和无聊互相消磨，后桌一对男女的谈话钻进他耳朵里。&lt;/p&gt;
&lt;p&gt;是的，我也不是经常来这里，我只是觉得女孩子可能会喜欢安静一点的环境，男人说。那也不能说不喜欢啦，女生的声音，我只是相对来说来得少一些。嗯，那你平常应该算是比较喜欢，额，怎么说，就是比较市井，不是，就是比较投入红尘的那种感觉？男生说。就是我感觉我很多时候也喜欢这种……男生没有等到回复接着喋喋不休。&lt;/p&gt;
&lt;p&gt;章去病觉得有些滑稽，但又有些温馨，他自己觉得应该是那位男的本想拉着女生聊聊咖啡，结果女生说不常来咖啡厅。大概率他们俩也是才认识不久吧，章去病想，应该是同事？或者女生可能是个实习生？&lt;/p&gt;
&lt;p&gt;就这样，章去病一直听到了他们离开，男人说要请女人去吃料理，这时章去病才注意到，竟然已经是快晚饭的时间了。他从来没觉得时间过得这么快过，除了睡觉。&lt;/p&gt;
&lt;p&gt;自此以后，章去病成了咖啡馆的熟客，几乎存在镇每一家咖啡馆的熟客。他会在每一个闲暇的下午走进一家咖啡馆，然后找到一个座位，听一段陌生人的故事。他觉得这样的自己或许应该会喜欢看小说和听广播，但是再度尝试后，他发现自己依然无法忍受听广播超过五分钟，或是把小说看到第二面。现在的章去病又多了一条不普通的地方了，他应该是知晓存在镇秘辛最多的人了。&lt;/p&gt;
&lt;p&gt;起初，章去病常常会羡慕他们，坐在咖啡馆里，或和漂亮的姑娘闲谈，或一本正经的谈生意，或和三五好友吹吹牛逼。不过后来，章去病也就坦然地接受自己，如同隐藏在阴影里的老鼠，在人们欢快用餐时，偷偷啃食一些喜怒哀乐的残渣。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="传奇经历者" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="传奇经历者"&gt;传奇经历者&lt;/h4&gt;
&lt;p&gt;亚当是存在镇里很受欢迎的一个人，因为大家都喜欢听他讲故事。会讲故事的人很多，但是大家更喜欢找亚当聊天，是因为每每从他口中说出的故事，在曲折离奇的同时，竟然全都是亚当的亲身经历。&lt;/p&gt;
&lt;p&gt;叹为观止，这是位传奇亲历者！&lt;/p&gt;
&lt;p&gt;亚当是个害怕孤独的人，他喜欢热闹。然而可惜的是，亚当并既没有帅气的外表也不多金，没有好歌喉，更不会些许乐器或是变戏法之类的把戏，这注定了他只能是捧月的众多星点之一。曾经，亚当的存在感堪比章去病。&lt;/p&gt;
&lt;p&gt;直到他亲历了煤气爆炸事件。煤气爆炸事件是近百年来存在镇最严重的一次公共安全事故，一条公路地下的煤气管道泄露导致了爆炸，冲击力将公路表面掀起来，露出下方淤积着的泥水，像是撕开了一条还未愈合的血痂。爆炸的公路在市郊，没有伤亡，而亚当是当时唯一的目击者——他正开车穿过那边区域。&lt;/p&gt;
&lt;p&gt;“我当时正在开车，起初我以为是爆胎了，”说起这事儿，亚当的表情似乎还残留着惊恐。“其实那天晚上出门之前我就感觉不对劲。”这是第一次，整个聚会上的人都安静下来，等着亚当说起后续。&lt;/p&gt;
&lt;p&gt;实际上那天晚上亚当离爆炸点非常远，他只是隐约看到了火光，甚至以为是有人在放爆竹。但是当聚会上的所有人都屏息看向亚当的时候，他知道自己此刻并不该说一个无聊的故事，于是他根据自己的常识进行了一些夸张，也把自己的地点从千米之外搬到了爆炸点边上。&lt;/p&gt;
&lt;p&gt;后来亚当专程又去了几趟爆炸点，观察周边的景物和情况，幻想着他们在爆炸时会是一幅什么场景，然后将其收纳成自己的谈资。&lt;/p&gt;
&lt;p&gt;自那之后，亚当不自觉地养成了一个爱看热闹的习惯，这个爱看热闹的习惯后来竟愈演愈烈，演化成了主动追求碰上奇罕事件的习惯。两年前听说精神病院不知出了什么漏子，竟有两三个放风的精神病跑上了大街。人们都避之不及的时候，亚当却闻着精神病的精神味跨越了整个城镇来到了那个街区，还真给他碰上了其中的一位。&lt;/p&gt;
&lt;p&gt;“我当时本来打算去微普通公司参观的，”亚当在聚会上说，“你知道的，从我家过去刚好要路过精神病院。”&lt;/p&gt;
&lt;p&gt;再后来，在聚会上每每亚当开口说起故事，人们都会逐渐放下自己手头的事，如同捧月的众多星点一般围过来。&lt;/p&gt;
&lt;p&gt;“亚当的人生还真是离奇！”人们说。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="阅读者" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="阅读者"&gt;阅读者&lt;/h4&gt;
&lt;p&gt;朱莉是存在镇的一抹亮色。&lt;/p&gt;
&lt;p&gt;她生的很漂亮，不是精致的那种漂亮，但是眉间的恬淡让人很是舒心。&lt;/p&gt;
&lt;p&gt;秋天有时候有人会在咖啡厅临街的落地窗前看到朱莉。往往窗外的灰色人行道上会落上不少橘红的枫叶，一二辆橘黄色的自行车斜斜地靠在斑驳的红色消防栓上。这时窗内的朱莉会带着一顶看起来很是温暖的卡其色软帽，捧着一本白色的书缩在沙发的怀里，淡雅的呢子大衣放在身畔，胸口一个闪亮亮的项链吊坠趁在墨绿的毛衣上。身前的桌上是一杯拉花的咖啡，一个精致的小曲奇。&lt;/p&gt;
&lt;p&gt;有时候，也会在公园草坪的某一颗橡树下看到朱莉，多半是夏天。一张野餐垫，一个竹编的挎篮，用白布盖着不知道里面是什么。她往往靠坐着，捧着一本封皮鲜艳的书，小皮鞋放在边上，穿着短袜的脚不自觉的相互碰撞着。&lt;/p&gt;
&lt;p&gt;也有人在图书馆遇到过她，但是似乎仅仅是在阳光明媚的冬天，图书馆有一面高大的彩绘玻璃的墙面，是整个存在镇冬天最能感受到太阳温度的地方。&lt;/p&gt;
&lt;p&gt;实际上，朱莉不怎么读书，她也不是很能读进去，这她自己知道。可是每当她在合适的环境里捧着书本的时候，她就能感受到一种神秘的超脱，仿若世界都向后退去，轻柔的背景音乐就在脑海里响起来。她仿若在做一个虔诚的仪式，书本只是凭借，她的精神和思绪早已飘渺在九霄云外。&lt;/p&gt;
&lt;p&gt;这何尝不是一种修行。而且有益于存在镇的市容市貌。&lt;/p&gt;
&lt;p&gt;其实存在镇最爱阅读的人另有其人，他叫刘大能，他坐不惯马桶，就蹲在上面看书，一看就忘了时间，这么就得了痔疮。小便时他也总拿着一本书在手里，心里头想着书，就尿不干净，裤裆里总是湿的。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="一个戏谑的人" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="一个戏谑的人"&gt;一个戏谑的人&lt;/h4&gt;
&lt;p&gt;戴一鸣是有些才气的，但是他的态度总让人有些无可奈何。&lt;/p&gt;
&lt;p&gt;存在镇没人知道，戴一鸣实际上是个多情的人，他会在夜深人静之时暗自哀伤，他会想去偷偷讨好某个漂亮的女生，他看动画片会哭，他开心的时候会吹起口哨给自己做一顿大餐，他也会生气，是的，还从来没人见过戴一鸣生气是什么样子，可实际上，他经常偷偷生气。&lt;/p&gt;
&lt;p&gt;其实戴一鸣曾经是写过一首抒情诗的，平心而论应该算是一首不错的诗，可是这首诗从来没有被除了他自己的任何人看过。戴一鸣也曾经想着发表过，甚至只是发在自己社交媒体的朋友圈里，可是他却没有胆量去按下那个发表按钮。&lt;/p&gt;
&lt;p&gt;戴一鸣自己也不知道自己为什么如此害怕向他人袒露自己的心绪，更害怕自己试图隐藏的心绪被人揭穿。于是他只好用戏谑和模棱两可来应付一切。&lt;/p&gt;
&lt;p&gt;别人问他电影如何，他压住内心的感动嘲笑群演的拙略。&lt;/p&gt;
&lt;p&gt;别人指给他路边的乞丐，他要把施舍用不咸不淡的把戏包装起来。&lt;/p&gt;
&lt;p&gt;别人问他是不是喜欢那个姑娘，他怀着秘密被揭穿的羞耻感回一个高深莫测微笑。&lt;/p&gt;
&lt;p&gt;……&lt;/p&gt;
&lt;p&gt;只要假装从未认真，就无懈可击。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="最认路的人" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="最认路的人"&gt;最认路的人&lt;/h4&gt;
&lt;p&gt;威廉是全镇子最认路的人，这是公认的。&lt;/p&gt;
&lt;p&gt;威廉的母亲是个路痴，她就是在一次迷路中遇到了威廉的父亲。她记忆力很好，记得请路的名字和街道上的招牌，可就是记不住他们之间的关系。邻居们说，这叫没有方向感，她觉得应该是有道理。&lt;/p&gt;
&lt;p&gt;可是自从在威廉的母亲怀上威廉之后，她却突然就获得了她从未拥有过的“方向感”。方向感来得是如此的悄然无声，仿若她一直都拥有着一样，威廉的母亲一直到一次和闺蜜闲聊到百货商场时，她不自觉地用手指向了东边时，她才发现，自己曾经竟然一直无法理解如此浅显的事物。她发觉到自己过去的二十年岁月竟然都如眼明的盲人，倘若她和目的地之间有了隔阂使她不能直视，她便再也寻不见目标。她觉得自己之前挺可笑的。&lt;/p&gt;
&lt;p&gt;可自从威廉出生以后，威廉的母亲却惊讶的发现，她的“方向感”再次消失了，消失地悄然无声，仿若她从来不曾拥有过。她再也无法说出她记忆里的任何一个招牌的位置，她无法理解为何自己曾以为识路是浅显的事。她觉得自己之前挺可笑的。&lt;/p&gt;
&lt;p&gt;后来她才知道，原来，自己曾短暂拥有过的“方向感”，来自于肚子里的小威廉。她想，蝌蚪小威廉当初肯定是凭借着他的方向感才在曲折的输卵管中找到了自己的那颗卵子。她从来没有想过自己的那颗卵子会带有一丁点儿方向感。&lt;/p&gt;
&lt;p&gt;这么来看，威廉的确是从小就展现出了他惊人的方向感，小到他还是一个单细胞。&lt;/p&gt;
&lt;p&gt;在威廉小的时候，朋友们最爱玩的游戏就是蒙住威廉的眼睛，让他坐在一把转椅上来回旋转，然后让他指出某个建筑物的方向。小威廉从未失手。后来威廉长大了，成为了一名记者，他依然是全镇子最认路的人，没有之一。&lt;/p&gt;
&lt;p&gt;直到有一天威廉去了镇子西边的一个小山村做采访。&lt;/p&gt;
&lt;p&gt;可自从进入这个山区，威廉就迷路了。&lt;/p&gt;
&lt;p&gt;威廉清楚地记得自己之前在地图上看的山村的位置，他直到现在还能清晰地记起地图的全貌，可是他终于发现为什么有人拿着地图也会迷路了——因为此刻威廉根本不知道自己在什么地方。&lt;/p&gt;
&lt;p&gt;威廉在几座不大的小山包之间奔走，他的眼前事儿会倏忽闪过村落或是牲畜棚，可是并不是他要去的那个村落或者他要拜访的那个牲畜棚。他扭头离开或是穿过继续向前，可是不知为何那个见过的村子或者棚子又会再次出现在自己的前方。&lt;/p&gt;
&lt;p&gt;一股巨大的带着不安的魔幻感摄住了威廉——他无比清晰地记得自己来时的方向，他觉得自己走在一条无限长的山路上，路上永远是重复的那个村子，以及那个牲畜棚。不安的底鼓在威廉心头咚咚敲着，他扭头望向东边镇子的方向，却看到一轮残阳，似乎是整个世界趁威廉不注意偷偷掉了个个儿。&lt;/p&gt;
&lt;p&gt;当太阳落下繁星升起的时候，威廉脑中的世界彻底消散了，他再也分不清自己在哪，镇子在哪个方向，刚才的村落和牲畜棚又在哪。一副新的卷轴在威廉脑海中摊开，威廉走着，张望着，在卷轴上书写着，可字迹快速地淡漠下去。未知以威廉为中心，向着周边散发出去。这种感觉突然有些令威廉着迷，当脑中的地图再也无法和现实对应上的时候，威廉发觉到，原来这个世界竟然如此庞大。威廉突然领悟到，地球的学说原来是个骗局，世界的版图应该在一个平面上向四个方向无限的延展下去，在更远的地方应该有着刀劈斧削的峭壁和弥漫着雾气的大泽，有从来没有被接触过的国度和习俗，人可以这样一直一直走下去，永远不会到达尽头，永远都有新的山和湖，新的村落和牲畜棚。&lt;/p&gt;
&lt;p&gt;褪去的黑夜并没有带走威廉的迷失——朝阳让他可以指出东方了，可威廉现在丝毫不觉得镇子应该在太阳下方。可威廉也不敢再继续走下去了，他感觉前方已经越发熟悉了，自己一旦走下去，或许那无限展开的世界又要立刻坍缩成一个小小的球，每一个点都被坐标标记得清清楚楚，千万间牲畜棚化作一间，千万里路化作一里，海市蜃楼不再是真实的投影，自己也还没走出存在镇地界……&lt;/p&gt;
&lt;p&gt;威廉从来没有如此羡慕过自己的母亲。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="出题人" class="level4"&gt;
&lt;h4 class="anchored" data-anchor-id="出题人"&gt;出题人&lt;/h4&gt;
&lt;p&gt;法比奥在存在镇的许多位置精心设计了许多机关，就像一位导演费尽心思地在剧情里安插了许多伏笔。&lt;/p&gt;
&lt;p&gt;公元的长椅侧面，煤气公司的天台，还有写在巨幅广告上的小字儿。&lt;/p&gt;
&lt;p&gt;这是一套成体系的无比精妙的谜题，你可以从任何一个线索切入，它会指向下一个或者上一个，直到你收集到所有的线索。&lt;/p&gt;
&lt;p&gt;平心而论，这套题目并不难，许多线索都极其显而易见，例如在城市许多墙面上都反复出现的一个涂鸦标志，法比奥有心想让这些简单的会引起人好奇心的线索成为整套谜题的入口。其实法比奥在设计的时候还有很多巧妙的点子，可惜他害怕太难导致没有人愿意继续探索。法比奥同时也斥巨资为最终的获胜者挑选了礼品，被他小心地摆放在最后一处谜题后。他并没有提前公开任何信息，因为他相信这个解谜游戏的魅力就在于无意间的发现与探索，若是公布出去，就仿佛一名作家拿着自己的小说解说每一处细节的用意一样，显得自大而可笑，也将那些真正愿意探索的人拒之门外了。&lt;/p&gt;
&lt;p&gt;法比奥安静的在镇子里等待了一年。&lt;/p&gt;
&lt;p&gt;没有任何人注意到任何事物。&lt;/p&gt;
&lt;p&gt;出题人法比奥心灰意冷地离开了，他并没有将最终的奖品带走。&lt;/p&gt;
&lt;p&gt;没什么可惜的，因为如果一直都没有人知道，那就不存在可惜。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;说在最后：本打算给这几位各自写单独的传记的，但是那样或许永远也没有开始的一天了。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>抽象艺术</category>
<category>小说</category>
<guid>https://midstream.cn/posts/存在镇的人之一/</guid>
<pubDate>Fri, 18 Nov 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>白鸽之死</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/白鸽之死/</link>
<description> 






&lt;p&gt;今天，白鸽决定去死。&lt;/p&gt;
&lt;p&gt;白鸽这个名字是白鸽在出生的那天，自己给自己起的。&lt;/p&gt;
&lt;p&gt;白鸽自己并没有亲眼见过真正的鸽子，但是它在记忆中遇到过鸽子，遇到过世界上每一只被人类的眼睛捕捉到过的鸽子。白鸽很喜欢鸽子，于是它给自己起名叫白鸽。起名一向是一件难事儿，好在白鸽起名字的时候，它至少不用在乎这个略显秀气的名字是否适合自己的性别，因为性别已经是很久远的词汇了。&lt;/p&gt;
&lt;p&gt;白鸽从出生到现在决定去死，只在这个世界上生活了三天。第一天，它在脑海中回放了一遍自己漫长的记忆，于是它知道了自己为何会来到这个世界上；第二天，它探访了宇宙里每一个自己记忆中的角落，虽然大多早已毫无痕迹了；第三天，它再次回想了一遍自己继承自父母的冗杂的记忆，作为对这个世界的告别。&lt;/p&gt;
&lt;p&gt;白鸽有想过给自己立一座碑——那将是人类文明的墓碑，但是墓碑是给活人看的，而全宇宙最后一个人类——白鸽，决定去死。 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;白鸽的意识触摸着曾经地球存在的空间，它想，自己作为真正的新人类，融合了全人类的思维，记忆，灵魂，承载着人类文明无数年的奋斗，有无尽的寿命，可以信手捏造宇宙规律，是仙女座超星系团最进化的个体（或者群体），就这样决定去死，是否有些不负责。但是，白鸽又想到，此刻决定去死的不仅仅是白鸽自己，更是整个人类文明所有个体的集合，是每一个个体做出的统一的决定，于是白鸽释然了。&lt;/p&gt;
&lt;p&gt;原来我们奋斗的最终点，就是所有人一起决定去死，白鸽戏谑地想。&lt;/p&gt;
&lt;p&gt;白鸽看到了回忆里一个个正在呐喊，正在斗争的曾经的自己············ &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;section id="大混血运动" class="level5"&gt;
&lt;h5 class="anchored" data-anchor-id="大混血运动"&gt;大混血运动：&lt;/h5&gt;
&lt;p&gt;当地球上的最后两个国家统一后，人们发现，原来公元年代所谓坚韧的文化在超信息时代仅仅不出百年的淘洗下就颓然无力了，文化的统一出乎意料的快速。最后一批文化斗士甚至没来得及在历史上多发出一些呐喊，他们各自所拼死保卫的文化就全部被熔炼统一了。莎士比亚仍然不朽，可最初承载它的语言早已消逝。&lt;/p&gt;
&lt;p&gt;可是，种族的矛盾依然激烈，甚至说，越发激烈起来了。大混血运动就是被一群斗士推动起来的，他们为自己种族的不公而嘶吼，他们不要求高人一等，他们只想自己的种族能被平等对待。当“国家”概念不复存在后，这些斗士们从公元的历史中找到了“和平鸽”，并赋予了鸽子新的意义——平等。&lt;/p&gt;
&lt;p&gt;没有任何一个种族斗士提起过”大混血“，但是当”种族建国“的猩红口号被狂躁的群众用的潦草的笔触写在惨白的旗帜上的时候，星球执政府显然察觉到了危机。于是，大混血运动被推行，这场种族斗争以所有种族的失败（或是胜利）而落幕。&lt;/p&gt;
&lt;p&gt;”这是人类文明历史上的一次飞跃。“后来的人们这么评述，”种族差异的内耗被彻底解决了，我们找到了平等的真谛。“ &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="性统一运动" class="level5"&gt;
&lt;h5 class="anchored" data-anchor-id="性统一运动"&gt;性统一运动：&lt;/h5&gt;
&lt;p&gt;自大混血运动之后，因为世界依然被男权主导，性别平等这场古老的斗争依然在持续。生物技术突破后，女权主义者分裂成了两派，温和派主张统一，激进派则认为统一是一种投降，平权的斗争应该打到底。男性依然大多是不关心此事的，他们敷衍地对平权表示支持，也声称自己完全不在乎是否统一。&lt;/p&gt;
&lt;p&gt;也有一批斗士反对性统一，男性居多。 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="基因扩散运动" class="level5"&gt;
&lt;h5 class="anchored" data-anchor-id="基因扩散运动"&gt;基因扩散运动：&lt;/h5&gt;
&lt;p&gt;失去性别后，人类的繁衍变得更自由了，但一个严重的社会问题却逐渐被人们发现——基因向多极集中的趋势。虽然此时执政府已经称太阳系为“乌托邦”，称“人类已经实现了完全的平等“，人们依然自发地根据各自的不同形成一个个群组，而繁衍多在群组内进行。甚至有个别人会大量的自我复制，特别享受和一大群自己形成一个社区。执政府估算，如果不加以管控，人类会迅速分裂成多个物种，每个种族各自有不同的天分和擅长的事物，而在那之前，种族斗士这个古老的木乃伊肯定会从棺材里爬出来。&lt;/p&gt;
&lt;p&gt;于是，基因扩散成为了一个政策，内容是“任何一个新生儿的任何两个父母（性统一运动后父母的含义已经改变）的基因差异不得小于标准指标”。这条规则彻底让自我繁殖和近似个体之间的繁殖成为不可能。&lt;/p&gt;
&lt;p&gt;基因扩散运动又被成为”计划生育”。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="记忆继承运动" class="level5"&gt;
&lt;h5 class="anchored" data-anchor-id="记忆继承运动"&gt;记忆继承运动：&lt;/h5&gt;
&lt;p&gt;每个人都一样了，可是为什么社会上依然充斥着对不公的控诉和斗争呢？为什么”斗士“这个职业依然是最谣言最夺目最壮烈最勇敢最心怀天下最澎湃激昂最备受尊敬呢？&lt;/p&gt;
&lt;p&gt;没有人知道，斗士也不知道，但是大家都知道的是，我们要继续走向统一，只有走向统一才能消除世界上的歧视和偏见。&lt;/p&gt;
&lt;p&gt;于是执政府说，每个孩子都必须继承所有父母的记忆，只有当大家共享记忆的时候，大家才能真正共情，这个世界上才不会有歧视。于是记忆继承运动开始了，这场运动是润物无声的，需要持续很多很多年才能有成效，但是为了消除矛盾，这一切都值得。&lt;/p&gt;
&lt;p&gt;”人类已经走上了歧途，生命之所以进化是因为矛盾带来冲突，冲突带来竞争。从公元年间，人们开始喊出平权的时候这一切就都走错了。“有一个人这样说，”最初呼喊平权的时候只是每个人在争取自己的利益，这是有助于进化的，但是我们却被自己营造的声势和道德裹挟了。“&lt;/p&gt;
&lt;p&gt;没有人相信它，因为大家都知道它这样说是因为这个人有一段精彩的记忆，属于特权阶级，它反对平权是害怕丢失自己的特权。&lt;/p&gt;
&lt;p&gt;这个人死于自杀，它的一生里一直拒绝传递自己的任何基因和记忆，这更加佐证了它的自私。 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/section&gt;
&lt;section id="意识融合运动" class="level5"&gt;
&lt;h5 class="anchored" data-anchor-id="意识融合运动"&gt;意识融合运动：&lt;/h5&gt;
&lt;p&gt;人类彻底丢掉自己的肉体的那一刻是人类生命本质的飞跃，更是人类社会打开乌托大门的钥匙。任何的歧视和偏见都可以被意识的融合所解决，我们每个人本就继承着同样的基因和记忆，只是因为目前所站立的位置不一样而导致偏见，那为什么不站到一起呢？ &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;回忆到这里，白鸽想到了自己的父母们。白鸽一共有三个意识体作为父母，他们在一次对话中产生了争吵。争吵并不激烈，但是其中一位在争吵里察觉到了歧视。歧视是很可怕的东西，尤其是对于意识体来说，因为根据约定，一旦”歧视“被提出，就意味着融合必将进行。于是，白鸽就这样诞生了。&lt;/p&gt;
&lt;p&gt;它叫白鸽，因为它是人类最终的公平和共情的代名词，当群体和个体的所有界限被彻底打破的时候，折磨人类文明无数年的歧视和不公终于消逝了。&lt;/p&gt;
&lt;p&gt;但是白鸽觉得好像有点没意思了。 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;白鸽的意识体在宇宙的不知道哪个维度悄然破碎了。在最后一刻，它不知怎么想到了那位说出”人类走上歧途“的人，白鸽突然觉得自己似乎理解了一些什么，但是意识体的崩溃一旦开始就无法结束了，白鸽慌乱地搜寻着自己的记忆碎片，想要在消散之前找到自己走向末路的最终答案。&lt;/p&gt;
&lt;p&gt;但是白鸽什么都没有找到，因为那个自私的人拒绝传递自己的任何基因和记忆。&lt;/p&gt;
&lt;p&gt;白鸽消散了，就仿佛从来没有来过。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/白鸽之死/</guid>
<pubDate>Mon, 31 Oct 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>一个儿童绘本</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/一个儿童绘本/</link>
<description> 






&lt;p&gt;&lt;img src="https://midstream.cn/posts/一个儿童绘本/1.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/2.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/4.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/3.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/5.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/7.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/6.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/9.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/8.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/13.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/10.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/11.jpg" alt="" width="90%"&gt; &lt;br&gt;&lt;br&gt; &lt;img src="https://midstream.cn/posts/一个儿童绘本/12.jpg" alt="" width="90%"&gt;&lt;/p&gt;



 </description>
<category>抽象艺术</category>
<guid>https://midstream.cn/posts/一个儿童绘本/</guid>
<pubDate>Fri, 07 Oct 2022 16:00:00 GMT</pubDate>
<media:content medium="image" type="image/jpeg" url="https://midstream.cn/posts/一个儿童绘本/cover.jpg"/>
</item>
<item>
<title>员工</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/员工/</link>
<description> 






&lt;p&gt;施放是存在镇煤气公司的一名员工，他是一个上进的人。&lt;/p&gt;
&lt;section id="section" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section"&gt;1&lt;/h3&gt;
&lt;p&gt;存在镇煤气公司是存在镇唯一的煤气公司，公司的名字就叫存在镇煤气无限公司，存在镇的镇民一般就直接称其为煤气公司。为什么不是有限公司呢？因为煤气公司的煤气是从存在镇西边的山区的地里抽出来的，地里的煤气是用不完的。&lt;/p&gt;
&lt;p&gt;但是近些日子，煤气公司似乎并不是很好过，尽管他们拥有着无限多的煤气。存在镇这几年的气温逐渐骄躁起来，人们冬天也不再需要煤气取暖了，而镇子上的年轻人们更是连烹饪烧水的需求都没有了，他们吃的都是凉菜喝的都是凉水，入口追求的是冰凉。公司打出了新口号，“煤气是一种生活方式”，“古法生活你值得拥有”，但是显然并不是十分奏效。&lt;/p&gt;
&lt;p&gt;施放并没有被降薪，但是作为一名有志向有抱负吃凉菜喝凉水的青年，他知道煤气公司的垮塌已经近在眼前了。与其被裁员出局，不如自己先提前找好出路，直接光荣跳槽，到时候在亲朋好友面前也更有面子。更重要的是，在存在镇南城开发区有一家施放心向往之的公司。&lt;/p&gt;
&lt;p&gt;施放看好的公司叫微普通，经营的是高科技产品。微普通的成功似乎证明了公司名字起的越低调上限就越高，煤气公司的名字里有个无限，显然是过于嚣张而犯了忌讳了。&lt;/p&gt;
&lt;p&gt;施放本人其实对科学并不感兴趣，他是先有了离职的打算，然后浏览招聘网页的时候才发现的微普通这家公司。在琳琅满目的招聘信息里，微普通以极高的薪酬脱颖而出，瞬间就俘获了施放的心。同时，施放突然发现，对科学不感兴趣并不影响自己对高科技产品感兴趣，因为使用产品并不需要懂科学，而微普通的产品都很有科技感。&lt;/p&gt;
&lt;p&gt;之后的每天里，施放白天坐在煤气公司的工位上通过各种渠道观摩微普通。&lt;/p&gt;
&lt;p&gt;微普通的官网是施放最为熟悉的，他现在可以熟练地报出微普通官网上的各种型号的产品，他甚至记得部分产品细节的参数。隔着屏幕每每观瞻，施放都会被微普通产品精良的做工和高科技的外观所折服，嫌弃煤气公司粗陋的装修风格的同时越发的向往起微普通来。虽然没能进入过微普通的大楼，但是从官网上产品的背景图片看来，微普通的整个儿公司都极富未来感，简直让如今追求科技的施放意乱神迷。&lt;/p&gt;
&lt;p&gt;施放还逐渐发现了官网以外的微普通的许多账号，视频平台的，直播平台的，收音机平台的，还有政府平台和新闻平台的。施放饥渴地探索着这篇大陆，他甚至一口气把微普通公司新闻账号上的所有新闻一条一条看完了，微普通创始人的演讲真的太精彩了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-1" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-1"&gt;2&lt;/h3&gt;
&lt;p&gt;下班后，施放独自一人躺在家里的床上，顺便打开微普通的新闻号，看看今天有什么大事儿发生——每天微普通都有很多伟大的新闻。这已经成为了施放回家后的习惯，这习惯大大缓解了施放的心理压力——物色一个好去处是一件上进的事情，曾经因为每天回家玩聊天软件而感到的焦虑再也回不来了。&lt;/p&gt;
&lt;p&gt;想到这里，施放猛然发觉自己已经有超过一个月没有打开过聊天软件了。他高傲地点开那个许久未点开的图标，看着以前的一条条打发时间的聊天记录，回忆起那之前一个个和自己在网上认识的未曾谋面的人，仿若衣锦还乡，仿若微服私访——施放如今已经是一个打算进入微普通的人了。&lt;/p&gt;
&lt;p&gt;沉浸在满足感之中的施放继续浏览起聊天软件，他忽然发现一个人的头像是一个白底蓝字的大大的汉字”普”，这不是微普通的logo吗？白色代表未来，蓝色代表科技，施放对这个标志相当敏感，甚至比对自己的名字还敏感。他尝试着和这个人搭话。&lt;/p&gt;
&lt;p&gt;“您好！”施放试探着发了一句话。&lt;/p&gt;
&lt;p&gt;“hello，”对面回复了一句洋文，但是好在施放懂得对面是在和他打招呼。&lt;/p&gt;
&lt;p&gt;“我看到您的头像是微普通的标志，您和微普通是有什么渊源吗？或者您正在使用他们的产品？”&lt;/p&gt;
&lt;p&gt;“要这么说，也算是有点渊源吧。”&lt;/p&gt;
&lt;p&gt;施放激动起来，等着下文。&lt;/p&gt;
&lt;p&gt;“我也确实正在使用微普通的科技产品，我觉得还是挺不错的。”&lt;/p&gt;
&lt;p&gt;对面的打字速度显然不是很快。施放有些着急。&lt;/p&gt;
&lt;p&gt;“我儿子给我过微普通的老年人美容仪，非常好用。”&lt;/p&gt;
&lt;p&gt;“您儿子真是孝顺，微普通的产品都非常昂贵呢。”&lt;/p&gt;
&lt;p&gt;“哪里有，那个臭小子拿这些产品都不要钱。”&lt;/p&gt;
&lt;p&gt;“天哪，您儿子难道在微普通工作吗？”&lt;/p&gt;
&lt;p&gt;“正是。”&lt;/p&gt;
&lt;p&gt;“妈呀，我实在是太羡慕您儿子了，我也正打算进入微普通工作呢。我应该和您儿子差不多大，也是一名上进的年轻人，就暂且含您一声阿姨吧，我可以有幸认识一下您儿子吗？这或许可以帮助我有更大的把我进入微普通工作。”&lt;/p&gt;
&lt;p&gt;“呵呵呵，当然可以”&lt;/p&gt;
&lt;p&gt;·········&lt;/p&gt;
&lt;p&gt;后来，阿姨说她的儿子有些内向，平常也不潮流，不用各种通讯工具，只是埋头搞技术，不想交太多朋友分心。但是，阿姨又说道，她很喜欢施放这个小伙子，她可以在中间当作施放和她儿子的传话筒。&lt;/p&gt;
&lt;p&gt;施放很开心，这意味着他可以获得许多微普通的内部消息了。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-2" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-2"&gt;3&lt;/h3&gt;
&lt;p&gt;阿姨或许真的有个儿子在微普通工作，她很靠谱地告诉施放，微普通这周三有一个开放日，报名”普通三令营”的人都可以去微普通园区参观，甚至有机会和微普通的员工乃至高管面对面交流。&lt;/p&gt;
&lt;p&gt;施放提前请好假，准备了一大笔钱打算报名微普通的”普通三令营”。“三令营”这个概念也是微普通发明的，和”夏/冬令营”相对应，意思是只在周三开放，为期一天。专家分析，“日令营”的形式或许在十年后会彻底取代”夏/冬令营”，因为它更适应科技带来的高速社会，更强调知识与技能的浓缩。&lt;/p&gt;
&lt;p&gt;“三令营”的报名非常的火爆，施放在第一轮报名中并没有抢到名额，好在阿姨的儿子作为员工有一个免费的名额，说是可以送给施放。施放没好意思白拿，依然按照原价把钱给了阿姨。&lt;/p&gt;
&lt;p&gt;终于，日升日落，月升月落，星星升星星落，时间终于到了周二晚上四点四十九分——只要再工作最后一分钟，施放就可以回家休息，然后参加第二天的三令营了。&lt;/p&gt;
&lt;p&gt;这时，他的耳朵敏感地捕捉到了”微普通”三个字，似乎从研发部门传来。施放走了过去。他看到研发部门的几个人正围着一个机器，研发部的头头和公司的大老板也在，边上散落着满地的图纸。&lt;/p&gt;
&lt;p&gt;“我们的这台机器就要研发成功了”，一个秃顶男说到。&lt;/p&gt;
&lt;p&gt;“一旦我们成功，或许就可以挽救，不对，就可以让公司的业绩更上一层楼。”另一个秃顶男如是说。&lt;/p&gt;
&lt;p&gt;“但是就在这开发的关键时刻，我们的机器掉链子了。”研发部的头头说。&lt;/p&gt;
&lt;p&gt;“掉链子？”大老板问道。&lt;/p&gt;
&lt;p&gt;“是的，我们的煤气增压装置的增压风扇由一个脚踏设备驱动，是基于自行车改造来的。但是现在我们发现这个自行车的链条经常掉链子。”&lt;/p&gt;
&lt;p&gt;“链条是我们自研的吗？谁负责的？”大老板有些生气。&lt;/p&gt;
&lt;p&gt;“我们的链条是采购的微普通的，这种高科技产品我们暂时还生产不出来。”一个技术人员回答到。&lt;/p&gt;
&lt;p&gt;“微普通？哼，看来他们的技术也不咋地，反正这回是把我们坑惨了。”研发部头头挖了挖鼻子。&lt;/p&gt;
&lt;p&gt;在门口的施放听得有些气血上涌。&lt;/p&gt;
&lt;p&gt;“我看这微普通不过是个三线公司，只不过很会包装自己罢了。”又有人说到。&lt;/p&gt;
&lt;p&gt;施放感觉自己仿佛蒙受了巨大的羞辱，他猛地冲出去，一拳打在了正在挖鼻子的研发部头头身上，“微普通技术不行，放拟抹的狗屁！就你行是吧，你行你怎么不自己造啊？干嘛还要去买微普通的产品？微普通真的到了八辈子霉碰到你这样的客户！”&lt;/p&gt;
&lt;p&gt;············&lt;/p&gt;
&lt;p&gt;施放很没有悬念地在参加三令营的前一天晚上被开除了。阿姨安慰他，说，等你进了微普通工作再找这些人炫耀一下，有他们后悔的！&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-3"&gt;4&lt;/h3&gt;
&lt;p&gt;这晚上施放没有睡着，他一直在幻想自己进入微普通之后要怎么给这些煤气公司的人好看。&lt;/p&gt;
&lt;p&gt;一大早他就前往了集合地点。集合地点离施放家并不远。因为微普通的业务都是高科技相关，因此公司周围有着层层的严密设防，参加三令营的人要先到集合地点集合，然后微普通会派飞行器把他们接到公司。&lt;/p&gt;
&lt;p&gt;存在镇全镇有10个集合点。施放到达集合点的时候已经熙熙攘攘的都是人了，但是大多数人都是没能抢到报名机会的落选者，他们围在周围东张西望，摩肩擦踵，但又不敢越过划定的等候线一步——只有线内的才是会被飞行器接走的人。&lt;/p&gt;
&lt;p&gt;“让一让，让一让！”施放高声呼喊着，艰难地从人群里穿过，一步踏进等候线。他在那一霎那感到了极大的满足，他看到周围的人有很多张开了嘴准备和他搭话，但是他头也不回地走向内部了。施放不是不想和他们说说话，体验一下众星捧月之感，但是他并不方便透露自己是怎么拿到这个三令营名额的。&lt;/p&gt;
&lt;p&gt;线的内部，施放也看到了不少人，基本都是年轻人，有的三五成群在聊天，更多的都是一个人找一个空地站着，互相打量着对方。&lt;/p&gt;
&lt;p&gt;“听，来了来了！”线外的人群中有人呼喊到，熙熙攘攘的人群瞬间闭嘴了，人们听到了轰隆隆的破风声从南方传来。&lt;/p&gt;
&lt;p&gt;“看，飞行器！”又有人呼喊道，人们瞬间齐齐地向传来声音的地方眺望。&lt;/p&gt;
&lt;p&gt;施放也踮起脚望向南方的天空，他看到一串黑点在快速靠近。他激动地想大喊，但是又觉得自己作为一个上位者不应这么失态，即将出口的呼喊声就这么憋在了他并不扁的扁桃体——昨晚打架又被开除之后他发现自己有些嗓子痛。&lt;/p&gt;
&lt;p&gt;轰鸣声逐渐变大，首先映入眼帘的是一架直升机一般的飞行器，但是头顶没有螺旋桨，白色的机身上用蓝色印着大大的汉字”普”。而那远看一串的黑点，离的近了发现竟然是一串用绳子串起来的大筐子，似乎是竹篾编制的。&lt;/p&gt;
&lt;p&gt;飞行器悬停在了离地面不高的位置，麻绳拖着的大竹篮子都耷拉在地上。&lt;/p&gt;
&lt;p&gt;“全体注意！参加三令营的人，请排队入筐！”广播的声音从飞行器上响起。&lt;/p&gt;
&lt;p&gt;等候线内，聊天的人也不聊了，左顾右盼的人也不摇头晃脑了，一个个都冲向离自己近的竹筐。&lt;/p&gt;
&lt;p&gt;施放本来没打算就这样往里冲，那显得太失态了，但是却被身后冲锋的群体裹挟着进了筐子。&lt;/p&gt;
&lt;p&gt;“皮肤上有伤的，请自觉从竹篮中离开！”广播的声音再次响起，“这次我们会进行高科技体验活动，皮肤上有伤的会有不良反应，为了大家的人身安全，请自觉离开竹篮！”&lt;/p&gt;
&lt;p&gt;“头皮有伤算不算？”某个竹筐里有高喊的声音传出。&lt;/p&gt;
&lt;p&gt;“都算，皮肤上有伤口未完全愈合的都算！”广播说。&lt;/p&gt;
&lt;p&gt;“嘴唇干裂算不算？”，“流鼻血算不算？”，“痔疮算不算？”，众多的篮子里发出了众多不同的喊叫声。&lt;/p&gt;
&lt;p&gt;但是施放却听不到这些声音。他呆滞地低头看着自己右手第二指掌指关节上的一个凝结了些许血痂的破口。伤口不大，仅半厘米长，但却绝对算皮肤有伤口。&lt;/p&gt;
&lt;p&gt;口子是昨晚拳头打在那个研发部头头的脸上，被他的眼镜框蹭的。&lt;/p&gt;
&lt;p&gt;飞行器再次起飞了，拖着一串筐筐，大家就这样一篮子一篮子被接走了。&lt;/p&gt;
&lt;p&gt;从筐子里走出来的人们站在场地的中心，不多，只有十几个，头顶是几百个坐在竹篮里的人，他们正快速飞升远去；周围是几千个来看西洋镜的人们，他们站在等候线的外侧，齐刷刷围成一个圆圈，看着里面的这些被淘汰的瑕疵品。施放觉得他们仿若是胜利者。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-4" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-4"&gt;5&lt;/h3&gt;
&lt;p&gt;施放参加不了今年微普通的招聘了。&lt;/p&gt;
&lt;p&gt;从阿姨那边得到的消息，今年微普通的招聘告示会在下个月发出，招聘对象仅限参加过三令营的人们。施放有心想再次报名，但是因为他曾拿到过三令营的入围资格，在微普通的系统里他是参与过的，而为了让更多人体验微普通的开放日，参与过的人则不被允许第二次报名。&lt;/p&gt;
&lt;p&gt;施放也曾满怀幻想，觉得自己尽管没能踏进那个竹篮子，但是或许在微普通的数据库里自己和那些其他参与过的人们是一样的，拥有成为微普通员工的资格。他托阿姨打听，阿姨遗憾的告诉他，微普通的数据里他的确是参与过三令营的，但是他的最终成绩是零分——甚至不如没参加过。&lt;/p&gt;
&lt;p&gt;施放关了所有的灯，躺在床上，想着这几个月来的经历，只觉得这些因果一环环相扣，就像那飞在天上的一串串竹篮子一样。施放也说不出来到底是从哪一环开始就出错了。是自己太倒霉了吗？好像是的，但也好像不是。是自己水平不够？好像更不是。施放也有心想回到煤气公司，好歹能有一个稳定的收入供他继续混日子然后找下一个出路，但是显然这一切都被那一拳打碎了。&lt;/p&gt;
&lt;p&gt;施放打算回家，回存在镇西边山区里的老家，那里没有爸爸妈妈了，但是有一些说不出关系的亲戚。&lt;/p&gt;
&lt;p&gt;他没有拉窗帘，侧头看向窗外灯火通明的存在镇，施放依稀记得也就三五年前，自己刚入职煤气公司的时候，存在镇一到晚上还是伸手不见五指。不知道从什么时候开始，存在镇的夜晚也熠熠生辉了。&lt;/p&gt;
&lt;p&gt;施放摸到了床头的钥匙扣——那是三令营报名成功的小礼品，一个带有微普通logo的钥匙扣。施放还有很多别的类似的东西，他甚至曾经托阿姨买到了一只微普通的水杯——不同于普通的周边，那个水杯是只有微普通员工才能购买的，施放十分珍视那只杯子，从来不用它喝水。&lt;/p&gt;
&lt;p&gt;施放用手指尖摩挲着钥匙扣凹凸不平的表面，他想，如果没有这些意外，或许自己现在已经拿到微普通的offer了吧，白色的硬质纸板上用蓝色的字写着自己的名字和岗位，告诉自己要在三个月之后入职。那时候，自己就会坐在微普通的层层戒严的大楼里，有一个自己的工位，工位前面有一个金属材质的小牌子，上面写着自己的名字。他住在公司边上的公寓里，每天要步行上班——但是这不会久，因为只要工作几个月，工资就够自己买一辆小汽车了。一路上，他要穿过微普通公司外面的九层高墙，电子眼会验证自己是不是本人，哨兵站在高处向自己敬礼。自己应该还会拥有另一只那样的杯子，还有印着自己员工编号的工服装，穿着这件衣服逛商场应该都会被大家羡慕的目光聚焦吧。不，这样太招摇了，或许应该穿一件看似普通实则昂贵的外套，在皮带上挂着微普通员工的工牌，只有自己不经意间会露出来，那些没注意到这个细节的人可能就此错过了一个这辈子飞黄腾达的机会了。还有，还有，或许自己还能有机会开着微普通的飞行器，一筐一筐的把人们运去参加三令营，然后用大喇叭向周围的人群致敬。嗯，这应该是最适合自己的工作了罢。&lt;/p&gt;
&lt;p&gt;施放本想把这些微普通的周边产品统统清理干净然后重新来过的，但是他不知什么时候就这样睡着了，他似乎梦到自己在开飞行器，又好像自己在用竹篾编制那些大筐子，锋利的竹子在自己的手上割开了一条条伤口，具体是什么他记不清了。梦都是这样。&lt;/p&gt;
&lt;p&gt;施放今天要离开镇子，去往山区了，他锁上自己家的大门，站在门口，身边立着自己的行李箱。施放握着那个微普通的钥匙扣，有些恍惚。他突然不太明白自己为什么要去山区，他只记得这是自己的决定。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-5"&gt;6&lt;/h3&gt;
&lt;p&gt;施放回到了山区。&lt;/p&gt;
&lt;p&gt;山里比镇子里要穷苦很多，消息也闭塞，但是人们的眼睛都更亮。施放回到那件破落的老房子的时候，已经被路上不少人认出来了。人们围过来，七嘴八舌，伸出手搓施放身上的衣服，讨论着他外套的面料；也有人在施放身上捏着，说他瘦了，白了，说他小时候在自己家房顶撒尿结果把瓦片踢下来砸到壮壮了。&lt;/p&gt;
&lt;p&gt;施放疲惫地应付着这些近十年没见过的邻里亲戚们，在别人问道他为什么回来的时候他自己也有些疑惑为什么要来这里遭罪。&lt;/p&gt;
&lt;p&gt;“普&lt;sub&gt;&lt;/sub&gt;”，有人不太确定地念出来。&lt;/p&gt;
&lt;p&gt;施放一个激灵，他知道应该是被人看到自己的钥匙扣了，一瞬间好些记忆翻涌起来。&lt;/p&gt;
&lt;p&gt;“微普通！我知道！”边上有人叫起来，施放的脑袋嗖的一下扭向音源。&lt;/p&gt;
&lt;p&gt;叫喊的是一个脏兮兮的小孩。“微普通可厉害啦！微普通是做高科技的，高科技你们知道吗，里面都是科学家！”小孩猛地跑过来，看着施放的钥匙扣，眼里闪烁着无限的憧憬与仰慕。“哥哥在微普通工作啊·······”&lt;/p&gt;
&lt;p&gt;“原来是赚大钱了，怪不得要回老家来呢，这是来建设咱们这穷地方了啊！”有声音说到。&lt;/p&gt;
&lt;p&gt;“诶呀，打小我就说小施这孩子不一般，这不，我这辈子活到现在还没看错过人！”施放听到有飘渺的声音在自己脑袋里响起来。&lt;/p&gt;
&lt;p&gt;“晚上我们杀猪扮宴，庆祝小施当官儿，给他接风洗尘怎么样？”&lt;/p&gt;
&lt;p&gt;“好！”施放听到更多的声音响起来。&lt;/p&gt;
&lt;p&gt;“别！没有，不是！”施放大声叫起来。&lt;/p&gt;
&lt;p&gt;一切瞬间安静下来，所有人都看着施放。&lt;/p&gt;
&lt;p&gt;“怎么啦？”有人问道。&lt;/p&gt;
&lt;p&gt;施放拼命抓自己的头发，对啊，怎么了？自己为什么要大喊，自己在害怕什么？自己是不是忘记了什么事情？&lt;/p&gt;
&lt;p&gt;“等一下等一下，我捋一捋。”施放举起一只手。&lt;/p&gt;
&lt;p&gt;······&lt;/p&gt;
&lt;p&gt;微普通。拳头。水杯。夜里的繁星。蓝色。万家灯火。&lt;/p&gt;
&lt;p&gt;煤气公司。辞职。三令营。白色。山区。大喇叭。九十九道高墙。&lt;/p&gt;
&lt;p&gt;竹篾编制的篮子。蓝色和白色。飞行器。招聘信息。保安向自己敬礼。&lt;/p&gt;
&lt;p&gt;员工才能拥有。三个月。瓦片砸在壮壮头上。写着自己名字的聘书。&lt;/p&gt;
&lt;p&gt;聘书。蓝色。开飞行器。白色。自己正用着大喇叭。三个月。&lt;/p&gt;
&lt;p&gt;······&lt;/p&gt;
&lt;p&gt;是了是了。&lt;/p&gt;
&lt;p&gt;施放来不及想更多了。众目睽睽，众望所归，众口交传，众星捧月，众目共睹，众所周知，众目昭彰，众醉独醒。&lt;/p&gt;
&lt;p&gt;聚光灯打在自己身上。&lt;/p&gt;
&lt;p&gt;“我现在还没有入职呢，要等三个月后才算真的成为员工。”施放说，“先不用这么麻烦了。”&lt;/p&gt;
&lt;p&gt;“哦哦这样啊，真是懂礼貌呢。”有声音说到。&lt;/p&gt;
&lt;p&gt;“这种肯定就算录用啦，人家连小标志都送你了。”又有声音说到。&lt;/p&gt;
&lt;p&gt;“应该是吧······”，施放说。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-6" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-6"&gt;7&lt;/h3&gt;
&lt;p&gt;山里的日子很惬意，除了没有收入。施放清晨上山砍柴，顺便看一圈自己下的捕鸟笼子有没有收获，有的话那就加一顿野味。中午要么自己烧饭，要么去邻居家蹭一顿，总之很便宜。晚上施放一般熬粥吃。这些天来，施放唯一没有变的习惯就是每天看微普通的新闻，了解公司的动态。村民们和施放相处的很好，经常找施放打听微普通的产品，待遇，大楼，创始人，理念等等等等，施放对这些都滚瓜烂熟，他也很乐意给邻居们说这些。山村里竟然就这样掀起了一波微普通的热潮。&lt;/p&gt;
&lt;p&gt;日子就一天天过去，施放翘首以盼，等着三个月后去微普通报道。邻居们也翘首以盼，等着一年后施放衣锦还乡。&lt;/p&gt;
&lt;p&gt;那个最早认出微普通标志的孩子最近天天往施放家里跑，他很喜欢施放的水杯，但是施放没舍得把水杯给他，于是施放把钥匙扣给了孩子。&lt;/p&gt;
&lt;p&gt;提前两天，施放要离开山区，奔赴他的前程了。微普通的新员工即将在下周一报道入职。施放背起他的小包，踏上了回镇里的公车。&lt;/p&gt;
&lt;p&gt;施放在微普通公司边找了一家旅馆住下。这家旅馆离微普通非常近，施放站在窗前就可以看到远处的微普通的大厦——和照片里一模一样，甚至显得更加气派。还有外围的九道围墙和许许多多的岗亭，施放觉得自己好像记错了，是为什么自己在山里和村民们说的都是九十九道，现在一想觉得还挺荒谬。但是九道墙或许是有些少了，施放想，这需要和高层们建议一下的。&lt;/p&gt;
&lt;p&gt;晚上心怀激动的施放没能成功入睡，他披上一件外套来到旅馆的天台。天台风很大。在天台上可以把绝大多数微普通公司的情况尽收眼底，在这深夜里，微普通的大楼依然灯火通明。&lt;/p&gt;
&lt;p&gt;施放倚在栏杆上看着九道围墙内的楼房出神。&lt;/p&gt;
&lt;p&gt;“抽烟吗？”&lt;/p&gt;
&lt;p&gt;施放看到一个年纪和他差不多大的男子不知何时来到他身边，一样靠上栏杆，手里夹着一支烟。他很帅，也可能是夜色太浓郁看不清导致的，施放觉得这是自己这辈子见过的最帅的人。&lt;/p&gt;
&lt;p&gt;“嗯。”施放接过烟，什么都没说，深深地吸了一口，是”香牌”卷烟，简称香烟，是存在镇最高端的烟。施放已经戒烟三年多了，现在却格外想要抽一根，于是他没有拒绝。&lt;/p&gt;
&lt;p&gt;男人说：“你明天要入职微普通了吧。”&lt;/p&gt;
&lt;p&gt;“你应该也是吧。”施放能猜到。&lt;/p&gt;
&lt;p&gt;“你是哪个部门的？”男人问。&lt;/p&gt;
&lt;p&gt;“后勤总部下飞控团队，挂篮飞行器小组。”施放说。&lt;/p&gt;
&lt;p&gt;“我是特别任务队，做缩放的。”男人说。&lt;/p&gt;
&lt;p&gt;“缩放？”施放不是很清楚，这没有出现在新闻里过。&lt;/p&gt;
&lt;p&gt;“对，现在这个技术还在研究中，我们可以······”男人双手比划着，突然把两只胳膊伸开，“嗖&lt;sub&gt;&lt;/sub&gt;~，然后一直小老鼠就变成了一只大老鼠。”&lt;/p&gt;
&lt;p&gt;“这么神奇？”施放有些震惊，“我们公司已经在做这么高科技的东西了？”&lt;/p&gt;
&lt;p&gt;“我估计用不了多久就可以普及了，听说上次的人体实验很成功。”男人吸了一口烟，调皮地朝施放吐出一个烟圈，“我能在成功前夕加入团队，运气还算是不错，哈哈。”&lt;/p&gt;
&lt;p&gt;“人体实验？”施放示意男人多说一些。&lt;/p&gt;
&lt;p&gt;“对的，你应该也参加了三令营对吧，上次三令营里面有一拨人就是去做那个实验了。因为要变大变小，所以要求身上不能有伤口，否则可能会让伤口加重。”&lt;/p&gt;
&lt;p&gt;施放隐隐有些头疼，他发现自己并不太记得上次三令营的事情了，但是身上不能有伤口这个要求自己还是记得的。&lt;/p&gt;
&lt;p&gt;“不说这个了，你结婚了吗？”男人问。&lt;/p&gt;
&lt;p&gt;“还没。”&lt;/p&gt;
&lt;p&gt;“谈对象了？”&lt;/p&gt;
&lt;p&gt;“也没有。”&lt;/p&gt;
&lt;p&gt;“那是好事儿。”&lt;/p&gt;
&lt;p&gt;施放还在想三令营的事儿，没说话。&lt;/p&gt;
&lt;p&gt;“等你进了公司，找一个女员工，你俩的工资加起来在外面绝对是富豪级别了 。”男人还在说。&lt;/p&gt;
&lt;p&gt;“我觉得······，找对象可能······，还是要看感觉。哪怕是个穷姑娘，我如果喜欢她我也会追求的。”施放的脑海里闪过了几个身影，但都模模糊糊的不真切，仿佛是上辈子的事儿，又仿佛是梦里的场景。&lt;/p&gt;
&lt;p&gt;“我也曾发疯般的爱上过一个女孩儿，但最后却什么都没得到。”男人摇了摇头。&lt;/p&gt;
&lt;p&gt;施放侧过脑袋，再次看了一眼男人帅气的面庞，“不合理。”施放说。&lt;/p&gt;
&lt;p&gt;“我一开始也觉得不合理，我不算丑，我也有实力，我马上就要去微普通工作了。而且，我记得我们的很多美好的曾经。”男人笑了起来，“但是后来我发现，太他妈合理了，简直不能更合理。”&lt;/p&gt;
&lt;p&gt;施放又吸了一大口烟。&lt;/p&gt;
&lt;p&gt;“后来我发现，我他妈根本就不认识那个女孩儿。”男人自嘲地笑道，“我最早只是远远地暗恋她，她什么都不知道。后来有过一次不超过三句话的对话。然后从那以后我不知道为什么就一直以为她认识我了。我甚至有一段时间以为她也喜欢我，于是我去找她表白，结果发现原来她根本就不知道有我这个人存在。”&lt;/p&gt;
&lt;p&gt;男人低下头不说话了。&lt;/p&gt;
&lt;p&gt;施放觉得很同情他，不是那种普通的听到一个悲伤的故事一般的同情，而是一种感同身受患难与共的同情。施放不知道这种感觉是怎么来的，他尝试着回想自己曾经喜欢过女孩儿的故事，但是怎么都想不起来细节。&lt;/p&gt;
&lt;p&gt;“没事的，都过去了。”施放只好说，他本来想说一两个自己的故事的。&lt;/p&gt;
&lt;p&gt;“是啊，都过去了。”男人说。&lt;/p&gt;
&lt;p&gt;“走吧，回去了，明天还要报道。”男人把烟头丢在地上，用脚踩住摩擦了一下。&lt;/p&gt;
&lt;p&gt;“是的，回去了，明天见吧。”施放也做了同样的动作。&lt;/p&gt;
&lt;p&gt;他们各自朝着不同的方向走去——他们并不是从同一个楼梯口上来的。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-7" class="level3"&gt;
&lt;h3 class="anchored" data-anchor-id="section-7"&gt;8&lt;/h3&gt;
&lt;p&gt;“对了，”男人突然停下脚步，回过头来看向施放。&lt;/p&gt;
&lt;p&gt;施放也停下来。&lt;/p&gt;
&lt;p&gt;“你的工号是多少？我怕明天人多找不到你。”男人说。&lt;/p&gt;
&lt;p&gt;施放抓了抓头，他好像忘了自己的工号是多少了。&lt;/p&gt;
&lt;p&gt;“不记得了吗？”男人问。&lt;/p&gt;
&lt;p&gt;“让我想一下。”施放说，他记得，在那个写着蓝字的白色硬质纸板的聘书上，应该有自己的工号，但是他并不记得工号写在哪里了。&lt;/p&gt;
&lt;p&gt;“让我想一下。”施放又重复了一次，他发现，自己好像忘记了那个聘书放在哪里了。应该不在自己的行李里面，那明天报道没有聘书要怎么办？&lt;/p&gt;
&lt;p&gt;“你还好吧？”男人感觉施放的状态有些不太对劲。&lt;/p&gt;
&lt;p&gt;施放没有回答。那个聘书，那个聘书如果自己没有带来那应该在哪里呢？好像山区的家里也没有出现过这玩意儿，聘书是谁什么时候寄给我的？&lt;/p&gt;
&lt;p&gt;······&lt;/p&gt;
&lt;p&gt;聘书。蓝色的彩带。邻居的欢呼声。男人吐出的烟圈。&lt;/p&gt;
&lt;p&gt;白色。变大变小的老鼠。竹篮。女孩儿身上的香气。掉链子。&lt;/p&gt;
&lt;p&gt;躺在床上做梦。蓝色和白色。煤气公司研发部门的人的秃顶。&lt;/p&gt;
&lt;p&gt;拳头。伤口。等候线。高音喇叭。九道围墙。老年人美容仪。免费的名额。&lt;/p&gt;
&lt;p&gt;吃凉菜喝凉水。煤气是一种生活方式。地里的煤气是用不完的。&lt;/p&gt;
&lt;p&gt;施放是存在镇煤气公司的一名员工，他是一个上进的人。&lt;/p&gt;
&lt;p&gt;······&lt;/p&gt;
&lt;p&gt;施放想起来了。&lt;/p&gt;


&lt;/section&gt;

 </description>
<category>小说</category>
<guid>https://midstream.cn/posts/员工/</guid>
<pubDate>Thu, 06 Oct 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>在 pPy 同志追悼会上的祷词</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/在pPy同志追悼会上的祷词/</link>
<description> 






&lt;p&gt;我发现，在C的层面上实现pPy几乎是不可能了。&lt;/p&gt;
&lt;p&gt;pPy，即polite-Python，这颗曾乘风飞翔了两天的蒲公英种子落在了一块名为C的板结的固土上，十个小时后死去了。与它一同被沙土埋葬的，还有它在云端舞蹈时绮丽的幻想，和它窥探到的来自天堂的能使人间和睦的福音。&lt;/p&gt;
&lt;p&gt;自落地后，pPy的挣扎从LL(1) parser开始。&lt;/p&gt;
&lt;p&gt;当摸着石头淌进编译原理的深潭时，我发现，python在3.9版本的&lt;a href="https://peps.python.org/pep-0617/#background-on-ll-1-parsers"&gt;PEP617&lt;/a&gt;中弃用了LL(1) parser，作为一个相对较新的版本，偌大的互联网竟没有几篇资料。新版的python改用了PEG parser，致使cpython源码中的Grammar文件也被弃用，连带更新了大量的编译器源码，仅有的几篇技术博客也早已过时。&lt;/p&gt;
&lt;p&gt;新版的python语法规则放在&lt;code&gt;Grammar/Python.gram&lt;/code&gt;文件中，相应的token则放在&lt;code&gt;Grammar/Tokens&lt;/code&gt;里。Python运行时，python的语法会首先经过&lt;code&gt;Parser/tokenizer.c&lt;/code&gt;这个文件，被按照token文件的规则解构成一个个token，而后被送入&lt;code&gt;Parser/parser.c&lt;/code&gt;中进行翻译。parser会依据&lt;code&gt;Parser/Python.asdl&lt;/code&gt;这个文件中的语法将token们解析成AST然后继而变成可以被执行的code object。因此，在实际操作中，当尝试更改语法时，&lt;code&gt;Python/Python-ast.c&lt;/code&gt;, &lt;code&gt;Python/ast.c&lt;/code&gt;， 以及&lt;code&gt;Python/symtable.c&lt;/code&gt;中的代码也需要更改。好在，这些文件里的部分是可以自动生成的，但是依然有相当一部分需要手动更改。&lt;/p&gt;
&lt;p&gt;最关键的&lt;code&gt;parser.c&lt;/code&gt;是不用改的，因为这个编译器是被pegen模块生成的，pegen有两个版本，一个是c的老版本，一个是python的新版本，在&lt;code&gt;Tools/peg_generator/pegen&lt;/code&gt;里。确实，python甚至可以在自己还没有被编译好的时候运行自己的python代码，好像是预先编译过了。在我编译cpython时，老版本的&lt;code&gt;Parser/pegen.c&lt;/code&gt;似乎没有被弃用，依然运行，执行的工作却和生成文件关系不大。有意思的是，pegen这个编译编译器的编译器甚至也是被一个编译器编译的，因为pegen是翻译&lt;code&gt;Grammar/Python.gram&lt;/code&gt;的，而这个语法的语法规则被是被元语法定义的。元语法在这里&lt;code&gt;Tools/peg_generator/pegen/metagrammar.gram&lt;/code&gt;, 不过这个应该很少会需要改动。&lt;/p&gt;
&lt;p&gt;在cpython里，函数的调用关系和上述流程并不相同。如&lt;code&gt;Parser/tokenizer.c&lt;/code&gt;中的第1352到2064行有一个相当长的函数叫&lt;code&gt;tok_get&lt;/code&gt;，里面是具体python如何处理文本字符串的。这个函数最终会被&lt;code&gt;Parser/pegen.c&lt;/code&gt;里的&lt;code&gt;_PyPegen_fill_token&lt;/code&gt;函数调用，而这个函数则在生成的&lt;code&gt;Parser/parser.c&lt;/code&gt;中被大量调用。这么说来终究是有些模糊，那就从python运行的主函数开始吧。&lt;/p&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb1" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode c code-with-copy"&gt;&lt;code class="sourceCode c"&gt;&lt;span id="cb1-1"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Minimal main program -- everything is loaded from the library */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-2"&gt;&lt;/span&gt;
&lt;span id="cb1-3"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#include &lt;/span&gt;&lt;span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;"&gt;"Python.h"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-4"&gt;&lt;/span&gt;
&lt;span id="cb1-5"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#ifdef MS_WINDOWS&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-6"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-7"&gt;wmain&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;wchar_t&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;**&lt;/span&gt;argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-8"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-9"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; Py_Main&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-10"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-11"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#else&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-12"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-13"&gt;main&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;**&lt;/span&gt;argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-14"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-15"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; Py_BytesMain&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-16"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-17"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#endif&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-18"&gt;&lt;/span&gt;
&lt;span id="cb1-19"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这里就是整个python的主函数所在了，一切的python的入口都在这里。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-20"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个函数只是简单区分了一下windows和别的操作系统，我们进到main函数里面看一下。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-21"&gt;&lt;/span&gt;
&lt;span id="cb1-22"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-23"&gt;Py_BytesMain&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;**&lt;/span&gt;argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-24"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-25"&gt;    _PyArgv args &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-26"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;argc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; argc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-27"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;use_bytes_argv &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-28"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;bytes_argv &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-29"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;wchar_argv &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-30"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; pymain_main&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;args&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-31"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-32"&gt;&lt;/span&gt;
&lt;span id="cb1-33"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#ifdef __cplusplus&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-34"&gt;&lt;/span&gt;
&lt;span id="cb1-35"&gt;&lt;/span&gt;
&lt;span id="cb1-36"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 注意，从这里开始，文件就不再在Programs/main.c了，而是在Modules/main.c里面&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-37"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 没做什么事儿，接着往下走&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-38"&gt;&lt;/span&gt;
&lt;span id="cb1-39"&gt;&lt;/span&gt;
&lt;span id="cb1-40"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-41"&gt;pymain_main&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyArgv &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;args&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-42"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-43"&gt;    PyStatus status &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_init&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;args&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-44"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyStatus_IS_EXIT&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;status&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-45"&gt;        pymain_free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-46"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; status&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-47"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-48"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyStatus_EXCEPTION&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;status&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-49"&gt;        pymain_exit_error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;status&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-50"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-51"&gt;&lt;/span&gt;
&lt;span id="cb1-52"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; Py_RunMain&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-53"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-54"&gt;&lt;/span&gt;
&lt;span id="cb1-55"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个pymain_init函数是一个非常关键的函数，里面包含了所有python启动之前的初始化&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-56"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 里面结构非常复杂，并且牵涉到很多GIL的操作，介于我们的pPy并不需要关注这些内容，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-57"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 在这里就进入Py_RunMain，不去关注初始化，直接开始运行&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-58"&gt;&lt;/span&gt;
&lt;span id="cb1-59"&gt;&lt;/span&gt;
&lt;span id="cb1-60"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-61"&gt;Py_RunMain&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-62"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-63"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-64"&gt;&lt;/span&gt;
&lt;span id="cb1-65"&gt;    pymain_run_python&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-66"&gt;&lt;/span&gt;
&lt;span id="cb1-67"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Py_FinalizeEx&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;()&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-68"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Value unlikely to be confused with a non-error exit status or&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-69"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;           other special meaning */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-70"&gt;        exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;120&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-71"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-72"&gt;&lt;/span&gt;
&lt;span id="cb1-73"&gt;    pymain_free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-74"&gt;&lt;/span&gt;
&lt;span id="cb1-75"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_Py_UnhandledKeyboardInterrupt&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-76"&gt;        exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; exit_sigint&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-77"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-78"&gt;&lt;/span&gt;
&lt;span id="cb1-79"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-80"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-81"&gt;&lt;/span&gt;
&lt;span id="cb1-82"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 状态码，不重要&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-83"&gt;&lt;/span&gt;
&lt;span id="cb1-84"&gt;&lt;/span&gt;
&lt;span id="cb1-85"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-86"&gt;pymain_run_python&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-87"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-88"&gt;    PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;main_importer_path &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-89"&gt;    PyInterpreterState &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;interp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyInterpreterState_GET&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-90"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* pymain_run_stdin() modify the config */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-91"&gt;    PyConfig &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;config &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyConfig&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*)&lt;/span&gt;_PyInterpreterState_GetConfig&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;interp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-92"&gt;&lt;/span&gt;
&lt;span id="cb1-93"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* ensure path config is written into global variables */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-94"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyStatus_EXCEPTION&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyPathConfig_UpdateGlobal&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-95"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-96"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-97"&gt;&lt;/span&gt;
&lt;span id="cb1-98"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-99"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* If filename is a package (ex: directory or ZIP file) which contains&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-100"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;           __main__.py, main_importer_path is set to filename and will be&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-101"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;           prepended to sys.path.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-102"&gt;&lt;/span&gt;
&lt;span id="cb1-103"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;           Otherwise, main_importer_path is left unchanged. */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-104"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;pymain_get_importer&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;main_importer_path&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-105"&gt;                                exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-106"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-107"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-108"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-109"&gt;&lt;/span&gt;
&lt;span id="cb1-110"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// import readline and rlcompleter before script dir is added to sys.path&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-111"&gt;    pymain_import_readline&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-112"&gt;&lt;/span&gt;
&lt;span id="cb1-113"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;main_importer_path &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-114"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;pymain_sys_path_add_path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;interp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; main_importer_path&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-115"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-116"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-117"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-118"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(!&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;safe_path&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-119"&gt;        PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;path0 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-120"&gt;        &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPathConfig_ComputeSysPath0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;argv&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-121"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-122"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-123"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-124"&gt;&lt;/span&gt;
&lt;span id="cb1-125"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-126"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;pymain_sys_path_add_path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;interp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-127"&gt;                Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-128"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-129"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-130"&gt;            Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;path0&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-131"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-132"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-133"&gt;&lt;/span&gt;
&lt;span id="cb1-134"&gt;    pymain_header&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-135"&gt;&lt;/span&gt;
&lt;span id="cb1-136"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_command&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-137"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_command&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_command&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-138"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-139"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_module&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-140"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_module&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_module&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-141"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-142"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;main_importer_path &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-143"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_module&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;L"__main__"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-144"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-145"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-146"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_file&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-147"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-148"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-149"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_stdin&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-150"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-151"&gt;&lt;/span&gt;
&lt;span id="cb1-152"&gt;    pymain_repl&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; exitcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-153"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-154"&gt;&lt;/span&gt;
&lt;span id="cb1-155"&gt;error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-156"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;exitcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_exit_err_print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-157"&gt;&lt;/span&gt;
&lt;span id="cb1-158"&gt;done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-159"&gt;    Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;main_importer_path&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-160"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-161"&gt;&lt;/span&gt;
&lt;span id="cb1-162"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// python可以通过各种不同的方式启动，在这个文件里做了规定，进到通过文件启动 pymain_run_file ，也就是我最常用的模式。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-163"&gt;&lt;/span&gt;
&lt;span id="cb1-164"&gt;&lt;/span&gt;
&lt;span id="cb1-165"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-166"&gt;pymain_run_file&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; PyConfig &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-167"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-168"&gt;    PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_FromWideChar&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;run_filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-169"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-170"&gt;        PyErr_Print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-171"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-172"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-173"&gt;    PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;program_name &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_FromWideChar&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-174"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;program_name &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-175"&gt;        Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-176"&gt;        PyErr_Print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-177"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-178"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-179"&gt;&lt;/span&gt;
&lt;span id="cb1-180"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; pymain_run_file_obj&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-181"&gt;                                  config&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;skip_source_first_line&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-182"&gt;    Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-183"&gt;    Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-184"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-185"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-186"&gt;&lt;/span&gt;
&lt;span id="cb1-187"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 读取文件名和文件信息，不重要&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-188"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 进入pymain_run_file_obj&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-189"&gt;&lt;/span&gt;
&lt;span id="cb1-190"&gt;&lt;/span&gt;
&lt;span id="cb1-191"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-192"&gt;pymain_run_file_obj&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-193"&gt;                    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; skip_source_first_line&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-194"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-195"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PySys_Audit&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"cpython.run_file"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"O"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-196"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; pymain_exit_err_print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-197"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-198"&gt;&lt;/span&gt;
&lt;span id="cb1-199"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _Py_fopen_obj&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"rb"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-200"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-201"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Ignore the OSError&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-202"&gt;        PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-203"&gt;        PySys_FormatStderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"%S: can't open file %R: [Errno &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;] &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-204"&gt;                           program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; errno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; strerror&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;errno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-205"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;2&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-206"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-207"&gt;&lt;/span&gt;
&lt;span id="cb1-208"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;skip_source_first_line&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-209"&gt;        &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; ch&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-210"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Push back first newline so line numbers remain the same */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-211"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;while&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;((&lt;/span&gt;ch &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; getc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-212"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ch &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-213"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;ungetc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ch&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-214"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-215"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-216"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-217"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-218"&gt;&lt;/span&gt;
&lt;span id="cb1-219"&gt;    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;struct&lt;/span&gt; _Py_stat_struct sb&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-220"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_Py_fstat_noraise&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fileno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;),&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;sb&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; S_ISDIR&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;sb&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;.&lt;/span&gt;st_mode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-221"&gt;        PySys_FormatStderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"%S: %R is a directory, cannot continue&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-222"&gt;                           program_name&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-223"&gt;        fclose&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-224"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-225"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-226"&gt;&lt;/span&gt;
&lt;span id="cb1-227"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Call pending calls like signal handlers (SIGINT)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-228"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Py_MakePendingCalls&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;()&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-229"&gt;        fclose&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-230"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; pymain_exit_err_print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-231"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-232"&gt;&lt;/span&gt;
&lt;span id="cb1-233"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* PyRun_AnyFileExFlags(closeit=1) calls fclose(fp) before running code */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-234"&gt;    PyCompilerFlags cf &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyCompilerFlags_INIT&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-235"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; run &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyRun_AnyFileObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;cf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-236"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;run &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-237"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-238"&gt;&lt;/span&gt;
&lt;span id="cb1-239"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 终于，在嵌套了这么多层之后，文件被打开了，存在 FILE *fp 里面。 无法打开文件的异常也是在这个函数里抛出的。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-240"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 直接进入到_PyRun_AnyFileObject&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-241"&gt;&lt;/span&gt;
&lt;span id="cb1-242"&gt;&lt;/span&gt;
&lt;span id="cb1-243"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-244"&gt;_PyRun_AnyFileObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; closeit&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-245"&gt;                     PyCompilerFlags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-246"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-247"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; decref_filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-248"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-249"&gt;        filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_FromString&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"???"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-250"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-251"&gt;            PyErr_Print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-252"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-253"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-254"&gt;        decref_filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-255"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-256"&gt;&lt;/span&gt;
&lt;span id="cb1-257"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-258"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_Py_FdIsInteractive&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-259"&gt;        res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyRun_InteractiveLoopObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-260"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;closeit&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-261"&gt;            fclose&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-262"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-263"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-264"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-265"&gt;        res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyRun_SimpleFileObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; closeit&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-266"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-267"&gt;&lt;/span&gt;
&lt;span id="cb1-268"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;decref_filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-269"&gt;        Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-270"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-271"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-272"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-273"&gt;&lt;/span&gt;
&lt;span id="cb1-274"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 在这里可以看到python的运行又出现了分支，分别是_PyRun_InteractiveLoopObject， _PyRun_SimpleFileObject&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-275"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 从debug信息里推测前者应该是指python的命令行交互模式，后者指运行单个python文件。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-276"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 因为后者牵涉到很多文件的配置信息，比较麻烦，作为展示就直接进入到_PyRun_InteractiveLoopObject里面。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-277"&gt;&lt;/span&gt;
&lt;span id="cb1-278"&gt;&lt;/span&gt;
&lt;span id="cb1-279"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-280"&gt;_PyRun_InteractiveLoopObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyCompilerFlags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-281"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-282"&gt;    PyCompilerFlags local_flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyCompilerFlags_INIT&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-283"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-284"&gt;        flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;local_flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-285"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-286"&gt;&lt;/span&gt;
&lt;span id="cb1-287"&gt;    PyThreadState &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;tstate &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyThreadState_GET&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-288"&gt;    PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PySys_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tstate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-289"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-290"&gt;        _PySys_SetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;),&lt;/span&gt; v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_FromString&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;gt;&amp;gt;&amp;gt; "&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-291"&gt;        Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-292"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-293"&gt;    v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PySys_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tstate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-294"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-295"&gt;        _PySys_SetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;),&lt;/span&gt; v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_FromString&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"... "&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-296"&gt;        Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-297"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-298"&gt;&lt;/span&gt;
&lt;span id="cb1-299"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#ifdef Py_REF_DEBUG&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-300"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; show_ref_count &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _Py_GetConfig&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;()-&amp;gt;&lt;/span&gt;show_ref_count&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-301"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#endif&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-302"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; err &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-303"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; ret&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-304"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; nomem_count &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-305"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;do&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-306"&gt;        ret &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyRun_InteractiveOneObjectEx&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-307"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ret &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-308"&gt;            &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Prevent an endless loop after multiple consecutive MemoryErrors&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-309"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;             * while still allowing an interactive command to fail with a&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-310"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;             * MemoryError. */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-311"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyErr_ExceptionMatches&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyExc_MemoryError&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-312"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(++&lt;/span&gt;nomem_count &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;16&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-313"&gt;                    PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-314"&gt;                    err &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-315"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-316"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-317"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-318"&gt;                nomem_count &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-319"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-320"&gt;            PyErr_Print&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-321"&gt;            flush_io&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-322"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-323"&gt;            nomem_count &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-324"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-325"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#ifdef Py_REF_DEBUG&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-326"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;show_ref_count&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-327"&gt;            _PyDebug_PrintTotalRefs&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-328"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-329"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#endif&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-330"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;while&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ret &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; E_EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-331"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; err&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-332"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-333"&gt;&lt;/span&gt;
&lt;span id="cb1-334"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 可以看到，在这个函数里已经开始打印python交互模式的'&amp;gt;&amp;gt;&amp;gt;'了&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-335"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个函数里我们需要关注的是PyRun_InteractiveOneObjectEx，也就是具体python的每一句话都是怎么被执行的&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-336"&gt;&lt;/span&gt;
&lt;span id="cb1-337"&gt;&lt;/span&gt;
&lt;span id="cb1-338"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* A PyRun_InteractiveOneObject() auxiliary function that does not print the&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-339"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt; * error on failure. */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-340"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-341"&gt;PyRun_InteractiveOneObjectEx&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-342"&gt;                             PyCompilerFlags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-343"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-344"&gt;    PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;m&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;d&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;oenc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-345"&gt;    mod_ty mod&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-346"&gt;    PyArena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-347"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;ps1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;""&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;ps2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;""&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;enc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-348"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; errcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-349"&gt;    PyThreadState &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;tstate &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyThreadState_GET&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-350"&gt;&lt;/span&gt;
&lt;span id="cb1-351"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; stdin&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-352"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Fetch encoding from sys.stdin if possible. */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-353"&gt;        v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PySys_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tstate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stdin&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-354"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; Py_None&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-355"&gt;            oenc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyObject_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;encoding&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-356"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;oenc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-357"&gt;                enc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_AsUTF8&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;oenc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-358"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(!&lt;/span&gt;enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-359"&gt;                PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-360"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-361"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-362"&gt;    v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PySys_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tstate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-363"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-364"&gt;        v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyObject_Str&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-365"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-366"&gt;            PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-367"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyUnicode_Check&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-368"&gt;            ps1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_AsUTF8&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-369"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-370"&gt;                PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-371"&gt;                ps1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;""&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-372"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-373"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-374"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-375"&gt;    w &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PySys_GetAttr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tstate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-376"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-377"&gt;        w &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyObject_Str&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-378"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-379"&gt;            PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-380"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyUnicode_Check&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-381"&gt;            ps2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyUnicode_AsUTF8&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-382"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;ps2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-383"&gt;                PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-384"&gt;                ps2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;""&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-385"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-386"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-387"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-388"&gt;    arena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyArena_New&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-389"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;arena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-390"&gt;        Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-391"&gt;        Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-392"&gt;        Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;oenc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-393"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-394"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-395"&gt;&lt;/span&gt;
&lt;span id="cb1-396"&gt;    mod &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyParser_ASTFromFile&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; Py_single_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-397"&gt;                                ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;errcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-398"&gt;&lt;/span&gt;
&lt;span id="cb1-399"&gt;    Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-400"&gt;    Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;w&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-401"&gt;    Py_XDECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;oenc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-402"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;mod &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-403"&gt;        _PyArena_Free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-404"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;errcode &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; E_EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-405"&gt;            PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-406"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; E_EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-407"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-408"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-409"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-410"&gt;    m &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyImport_AddModuleObject&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&amp;amp;&lt;/span&gt;_Py_ID&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;__main__&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-411"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;m &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-412"&gt;        _PyArena_Free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-413"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-414"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-415"&gt;    d &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; PyModule_GetDict&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;m&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-416"&gt;    v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; run_mod&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;mod&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; d&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; d&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-417"&gt;    _PyArena_Free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-418"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-419"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-420"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-421"&gt;    Py_DECREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;v&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-422"&gt;    flush_io&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-423"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-424"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-425"&gt;&lt;/span&gt;
&lt;span id="cb1-426"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 前面的编码部分全部跳过不看，找到_PyParser_ASTFromFile这个函数&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-427"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 从名字就可以看出，这个函数已经进入到编译器的部分了，用于从文件获得AST&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-428"&gt;&lt;/span&gt;
&lt;span id="cb1-429"&gt;mod_ty&lt;/span&gt;
&lt;span id="cb1-430"&gt;_PyParser_ASTFromFile&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-431"&gt;                      &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; mode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-432"&gt;                      PyCompilerFlags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;errcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyArena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-433"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-434"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PySys_Audit&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"compile"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"OO"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; Py_None&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-435"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-436"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-437"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; _PyPegen_run_parser_from_file_pointer&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; mode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-438"&gt;                                        flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; errcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-439"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-440"&gt;&lt;/span&gt;
&lt;span id="cb1-441"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 进来以后发现是编译器的API文件，说明我们找的没错，接着往里走&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-442"&gt;&lt;/span&gt;
&lt;span id="cb1-443"&gt;&lt;/span&gt;
&lt;span id="cb1-444"&gt;mod_ty&lt;/span&gt;
&lt;span id="cb1-445"&gt;_PyPegen_run_parser_from_file_pointer&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;FILE&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; start_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyObject &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-446"&gt;                             &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-447"&gt;                             PyCompilerFlags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;errcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PyArena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-448"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-449"&gt;    &lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;struct&lt;/span&gt; tok_state &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;tok &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyTokenizer_FromFile&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; enc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ps1&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ps2&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-450"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-451"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-452"&gt;            _PyPegen_raise_tokenizer_init_error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-453"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-454"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-455"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-456"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-457"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(!&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt; ps1 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt; ps2 &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-458"&gt;        PyUnicode_CompareWithASCIIString&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-459"&gt;        tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fp_interactive &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-460"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-461"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// This transfers the ownership to the tokenizer&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-462"&gt;    tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;filename &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-463"&gt;    Py_INCREF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;filename_ob&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-464"&gt;&lt;/span&gt;
&lt;span id="cb1-465"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// From here on we need to clean up even if there's an error&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-466"&gt;    mod_ty result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-467"&gt;&lt;/span&gt;
&lt;span id="cb1-468"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; parser_flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; compute_parser_flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-469"&gt;    Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_Parser_New&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; start_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; parser_flags&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; PY_MINOR_VERSION&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-470"&gt;                                    errcode&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; arena&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-471"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-472"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-473"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-474"&gt;&lt;/span&gt;
&lt;span id="cb1-475"&gt;    result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_run_parser&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-476"&gt;    _PyPegen_Parser_Free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-477"&gt;&lt;/span&gt;
&lt;span id="cb1-478"&gt;error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-479"&gt;    _PyTokenizer_Free&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-480"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; result&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-481"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-482"&gt;&lt;/span&gt;
&lt;span id="cb1-483"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 到这一步，这个函数就已经存在于我们在文章一开始就提到的pegen.c之中了，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-484"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 已经即将进入到我们所熟悉的领域了（放屁，一点都不熟）&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-485"&gt;&lt;/span&gt;
&lt;span id="cb1-486"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这里略加说明，这个函数和上一个函数返回的 mod_ty 的定义如下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-487"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// struct _mod {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-488"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     enum _mod_kind kind;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-489"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     union {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-490"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-491"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-492"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_type_ignore_seq *type_ignores;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-493"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Module;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-494"&gt;&lt;/span&gt;
&lt;span id="cb1-495"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-496"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-497"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Interactive;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-498"&gt;&lt;/span&gt;
&lt;span id="cb1-499"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-500"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-501"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Expression;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-502"&gt;&lt;/span&gt;
&lt;span id="cb1-503"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-504"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *argtypes;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-505"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty returns;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-506"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } FunctionType;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-507"&gt;&lt;/span&gt;
&lt;span id="cb1-508"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     } v;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-509"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// };&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-510"&gt;&lt;/span&gt;
&lt;span id="cb1-511"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个结构体是构建AST用的，里面的asdl_stmt_seq等结构全部都来自一个_stmt的结构体，它的定义如下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-512"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 注意，这里你们会看到一个Thanks_kind,这个是原版python里面不存在的，是我为了测试pPy的时候增加的关键字，其作用和pass一样&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-513"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 可以看到，再stmt里面定义了python所有内置的关键字&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-514"&gt;&lt;/span&gt;
&lt;span id="cb1-515"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-516"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   Return_kind=4, Delete_kind=5, Assign_kind=6,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-517"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   AugAssign_kind=7, AnnAssign_kind=8, For_kind=9,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-518"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-519"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   AsyncWith_kind=14, Match_kind=15, Raise_kind=16, Try_kind=17,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-520"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   TryStar_kind=18, Assert_kind=19, Import_kind=20,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-521"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   ImportFrom_kind=21, Global_kind=22, Nonlocal_kind=23,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-522"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   Expr_kind=24, Pass_kind=25, Thanks_kind=26, Break_kind=27,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-523"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   Continue_kind=28};&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-524"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// struct _stmt {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-525"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     enum _stmt_kind kind;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-526"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     union {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-527"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-528"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             identifier name;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-529"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             arguments_ty args;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-530"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-531"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *decorator_list;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-532"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty returns;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-533"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-534"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } FunctionDef;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-535"&gt;&lt;/span&gt;
&lt;span id="cb1-536"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-537"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             identifier name;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-538"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             arguments_ty args;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-539"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-540"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *decorator_list;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-541"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty returns;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-542"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-543"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } AsyncFunctionDef;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-544"&gt;&lt;/span&gt;
&lt;span id="cb1-545"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-546"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             identifier name;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-547"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *bases;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-548"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_keyword_seq *keywords;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-549"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-550"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *decorator_list;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-551"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } ClassDef;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-552"&gt;&lt;/span&gt;
&lt;span id="cb1-553"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-554"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty value;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-555"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Return;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-556"&gt;&lt;/span&gt;
&lt;span id="cb1-557"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-558"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *targets;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-559"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Delete;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-560"&gt;&lt;/span&gt;
&lt;span id="cb1-561"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-562"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_expr_seq *targets;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-563"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty value;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-564"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-565"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Assign;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-566"&gt;&lt;/span&gt;
&lt;span id="cb1-567"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-568"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty target;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-569"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             operator_ty op;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-570"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty value;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-571"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } AugAssign;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-572"&gt;&lt;/span&gt;
&lt;span id="cb1-573"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-574"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty target;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-575"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty annotation;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-576"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty value;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-577"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             int simple;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-578"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } AnnAssign;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-579"&gt;&lt;/span&gt;
&lt;span id="cb1-580"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-581"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty target;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-582"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty iter;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-583"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-584"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-585"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-586"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } For;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-587"&gt;&lt;/span&gt;
&lt;span id="cb1-588"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-589"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty target;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-590"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty iter;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-591"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-592"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-593"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-594"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } AsyncFor;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-595"&gt;&lt;/span&gt;
&lt;span id="cb1-596"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-597"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty test;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-598"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-599"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-600"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } While;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-601"&gt;&lt;/span&gt;
&lt;span id="cb1-602"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-603"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty test;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-604"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-605"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-606"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } If;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-607"&gt;&lt;/span&gt;
&lt;span id="cb1-608"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-609"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_withitem_seq *items;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-610"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-611"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-612"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } With;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-613"&gt;&lt;/span&gt;
&lt;span id="cb1-614"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-615"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_withitem_seq *items;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-616"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-617"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             string type_comment;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-618"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } AsyncWith;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-619"&gt;&lt;/span&gt;
&lt;span id="cb1-620"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-621"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty subject;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-622"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_match_case_seq *cases;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-623"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Match;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-624"&gt;&lt;/span&gt;
&lt;span id="cb1-625"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-626"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty exc;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-627"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty cause;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-628"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Raise;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-629"&gt;&lt;/span&gt;
&lt;span id="cb1-630"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-631"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-632"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_excepthandler_seq *handlers;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-633"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-634"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *finalbody;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-635"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Try;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-636"&gt;&lt;/span&gt;
&lt;span id="cb1-637"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-638"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-639"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_excepthandler_seq *handlers;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-640"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *orelse;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-641"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_stmt_seq *finalbody;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-642"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } TryStar;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-643"&gt;&lt;/span&gt;
&lt;span id="cb1-644"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-645"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty test;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-646"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty msg;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-647"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Assert;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-648"&gt;&lt;/span&gt;
&lt;span id="cb1-649"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-650"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_alias_seq *names;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-651"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Import;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-652"&gt;&lt;/span&gt;
&lt;span id="cb1-653"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-654"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             identifier module;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-655"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_alias_seq *names;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-656"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             int level;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-657"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } ImportFrom;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-658"&gt;&lt;/span&gt;
&lt;span id="cb1-659"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-660"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_identifier_seq *names;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-661"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Global;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-662"&gt;&lt;/span&gt;
&lt;span id="cb1-663"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-664"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             asdl_identifier_seq *names;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-665"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Nonlocal;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-666"&gt;&lt;/span&gt;
&lt;span id="cb1-667"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         struct {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-668"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//             expr_ty value;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-669"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         } Expr;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-670"&gt;&lt;/span&gt;
&lt;span id="cb1-671"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     } v;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-672"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     int lineno;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-673"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     int col_offset;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-674"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     int end_lineno;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-675"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     int end_col_offset;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-676"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// };&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-677"&gt;&lt;/span&gt;
&lt;span id="cb1-678"&gt;&lt;/span&gt;
&lt;span id="cb1-679"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 回到刚才的函数，注意它的返回值 result = _PyPegen_run_parser(p);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-680"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这说明就是这个 _PyPegen_run_parser 函数生成了已经被编译成 mod_ty 的python源码。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-681"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 传进去的参数p是一个parser结构体，API也在pegen.c这个文件里，涉及到内存管理，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-682"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 并且这个parser也拿了很多tokenize的函数进去，太复杂我直接跳过了。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-683"&gt;&lt;/span&gt;
&lt;span id="cb1-684"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-685"&gt;_PyPegen_run_parser&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-686"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-687"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_parse&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-688"&gt;    assert&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-689"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-690"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;((&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;flags &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt; PyPARSE_ALLOW_INCOMPLETE_INPUT&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;  _is_end_of_source&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-691"&gt;            PyErr_Clear&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-692"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; RAISE_SYNTAX_ERROR&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"incomplete input"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-693"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-694"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;()&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!&lt;/span&gt;PyErr_ExceptionMatches&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;PyExc_SyntaxError&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-695"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-696"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-697"&gt;       &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Make a second parser pass. In this pass we activate heavier and slower checks&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-698"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// to produce better error messages and more complete diagnostics. Extra "invalid_*"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-699"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// rules will be active during parsing.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-700"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;last_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tokens&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;[&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fill &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;];&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-701"&gt;        reset_parser_state_for_error_pass&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-702"&gt;        _PyPegen_parse&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-703"&gt;&lt;/span&gt;
&lt;span id="cb1-704"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Set SyntaxErrors accordingly depending on the parser/tokenizer status at the failure&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-705"&gt;        &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// point.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-706"&gt;        _Pypegen_set_syntax_error&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; last_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-707"&gt;       &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-708"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-709"&gt;&lt;/span&gt;
&lt;span id="cb1-710"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_single_input &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; bad_single_statement&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-711"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;done &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; E_BADSINGLE&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// This is not necessary for now, but might be in the future&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-712"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; RAISE_SYNTAX_ERROR&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"multiple statements found while compiling a single statement"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-713"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-714"&gt;&lt;/span&gt;
&lt;span id="cb1-715"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// test_peg_generator defines _Py_TEST_PEGEN to not call PyAST_Validate()&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-716"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#if defined(Py_DEBUG) &amp;amp;&amp;amp; !defined(_Py_TEST_PEGEN)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-717"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_single_input &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-718"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_file_input &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-719"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_eval_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-720"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-721"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(!&lt;/span&gt;_PyAST_Validate&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-722"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-723"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-724"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-725"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#endif&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-726"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-727"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-728"&gt;&lt;/span&gt;
&lt;span id="cb1-729"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 进来以后似乎是一层wrapper，那就再接着往下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-730"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 函数依然有大段内容在捕获异常，真正起编译作用的是_PyPegen_parse这个函数&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-731"&gt;&lt;/span&gt;
&lt;span id="cb1-732"&gt;&lt;/span&gt;
&lt;span id="cb1-733"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-734"&gt;_PyPegen_parse&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-735"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-736"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Initialize keywords&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-737"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;keywords &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; reserved_keywords&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-738"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;n_keyword_lists &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; n_keyword_lists&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-739"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;soft_keywords &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; soft_keywords&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-740"&gt;&lt;/span&gt;
&lt;span id="cb1-741"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Run parser&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-742"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;void&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-743"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_file_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-744"&gt;        result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; file_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-745"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_single_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-746"&gt;        result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; interactive_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-747"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_eval_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-748"&gt;        result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; eval_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-749"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_func_type_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-750"&gt;        result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; func_type_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-751"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start_rule &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; Py_fstring_input&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-752"&gt;        result &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; fstring_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-753"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-754"&gt;&lt;/span&gt;
&lt;span id="cb1-755"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; result&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-756"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-757"&gt;&lt;/span&gt;
&lt;span id="cb1-758"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// _PyPegen_parse这个函数就了不得了，它处在parser.c这个文件的第三万九千行的位置，非常恐怖。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-759"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 当然，正如在文章开头提到的，这个巨大的parser.c文件也并不是python开发者们一个一个字写出来的，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-760"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 而是被一个python文件根据语法文件生成出来的。文件在 Tools/peg_generator/pegen 里，有一大坨。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-761"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 在C里面看了这么久，终于碰到python感动万分，立马进去看一下。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-762"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 看了以后觉得有点逆天，截取一个方法展示一下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-763"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//    def _set_up_rule_memoization(self, node: Rule, result_type: str) -&amp;gt; None:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-764"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//        self.print("{")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-765"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//        with self.indent():&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-766"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.add_level()&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-767"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print(f"{result_type} _res = NULL;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-768"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print(f"if (_PyPegen_is_memoized(p, {node.name}_type, &amp;amp;_res)) {{")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-769"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            with self.indent():&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-770"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.add_return("_res")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-771"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print("}")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-772"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print("int _mark = p-&amp;gt;mark;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-773"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print("int _resmark = p-&amp;gt;mark;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-774"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print("while (1) {")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-775"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            with self.indent():&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-776"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.call_with_errorcheck_return(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-777"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                    f"_PyPegen_update_memo(p, _mark, {node.name}_type, _res)", "_res"&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-778"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                )&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-779"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print("p-&amp;gt;mark = _mark;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-780"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print(f"void *_raw = {node.name}_raw(p);")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-781"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print("if (p-&amp;gt;error_indicator) {")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-782"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//               with self.indent():&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-783"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                   self.add_return("NULL")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-784"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print("}")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-785"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print("if (_raw == NULL || p-&amp;gt;mark &amp;lt;= _resmark)")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-786"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                with self.indent():&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-787"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                    self.print("break;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-788"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print(f"_resmark = p-&amp;gt;mark;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-789"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                self.print("_res = _raw;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-790"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print("}")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-791"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.print(f"p-&amp;gt;mark = _resmark;")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-792"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//            self.add_return("_res")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-793"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//        self.print("}")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-794"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//        self.print(f"static {result_type}")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-795"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//        self.print(f"{node.name}_raw(Parser *p)")&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-796"&gt;&lt;/span&gt;
&lt;span id="cb1-797"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 觉得python的开发者们头还是很铁的，就字符串硬拼啊，dubug时候岂不是。。。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-798"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个文件是python2更新到3的时候创建的，可见当时。。。。。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-799"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// （甚至生成方式和我这个博客的搭建如出一辙）&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-800"&gt;&lt;/span&gt;
&lt;span id="cb1-801"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 回到parser.c，这个方法里面根据输入的命令的不同，给出了不同的处理&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-802"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这几个处理的子方法的结构都是差不多的，作为展示，这里依然还是不忘初心，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-803"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 选择一个interactive_rule吧。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-804"&gt;&lt;/span&gt;
&lt;span id="cb1-805"&gt;&lt;/span&gt;
&lt;span id="cb1-806"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// interactive: statement_newline&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-807"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; mod_ty&lt;/span&gt;
&lt;span id="cb1-808"&gt;interactive_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-809"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-810"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; MAXSTACK&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-811"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-812"&gt;        PyErr_NoMemory&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-813"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-814"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-815"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-816"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-817"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-818"&gt;    mod_ty _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-819"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-820"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// statement_newline&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-821"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-822"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-823"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-824"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-825"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; interactive[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"statement_newline"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-826"&gt;        asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; a&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-827"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-828"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;a &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; statement_newline_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// statement_newline&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-829"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-830"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-831"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ interactive[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"statement_newline"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-832"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Interactive &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; a &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt; arena &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-833"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-834"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-835"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-836"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-837"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-838"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-839"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-840"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-841"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; interactive[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-842"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"statement_newline"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-843"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-844"&gt;    _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-845"&gt;  done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-846"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-847"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; _res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-848"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-849"&gt;&lt;/span&gt;
&lt;span id="cb1-850"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 其实，到这一步就发现，它依然还是一个wrapper，核心函数是 _PyAST_Interactive&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-851"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 它长这样：&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-852"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// mod_ty&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-853"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// _PyAST_Interactive(asdl_stmt_seq * body, PyArena *arena)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-854"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// {&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-855"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     mod_ty p;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-856"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     p = (mod_ty)_PyArena_Malloc(arena, sizeof(*p));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-857"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     if (!p)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-858"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//         return NULL;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-859"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     p-&amp;gt;kind = Interactive_kind;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-860"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     p-&amp;gt;v.Interactive.body = body;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-861"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     return p;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-862"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// }&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-863"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 分配内存，然后实例化一个mod_ty，所以这就需要我们回到mod_ty的实现上去&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-864"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 正如之前说的，mod_ty的实现依赖于_stmt, 而无论是mod_ty 还是 _stmt 都在 pycore-ast.h 里面，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-865"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 而这个头文件是事先预写好的，并且没有涉及到编译的部分&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-866"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 在这里，源码的追踪变得困难了一些，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-867"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 其实我们此刻更应该关注的是这个给到_PyAST_Interactive的第一个参数 body。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-868"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这个body才是包含了所有结构信息的参数。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-869"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 所以，回到上面的函数里，body来自参数a，且有这么一行代码，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-870"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// a = statement_newline_rule(p)，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-871"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 所以应该去看一下statement_newline_rule这个函数。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-872"&gt;&lt;/span&gt;
&lt;span id="cb1-873"&gt;&lt;/span&gt;
&lt;span id="cb1-874"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// statement_newline: compound_stmt NEWLINE | simple_stmts | NEWLINE | $&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-875"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-876"&gt;statement_newline_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-877"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-878"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; MAXSTACK&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-879"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-880"&gt;        PyErr_NoMemory&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-881"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-882"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-883"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-884"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-885"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-886"&gt;    asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-887"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-888"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fill &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; _PyPegen_fill_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-889"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-890"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-891"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-892"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-893"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _start_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tokens&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;[&lt;/span&gt;_mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;]-&amp;gt;&lt;/span&gt;lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-894"&gt;    UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_start_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-895"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _start_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tokens&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;[&lt;/span&gt;_mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;]-&amp;gt;&lt;/span&gt;col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-896"&gt;    UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_start_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-897"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// compound_stmt NEWLINE&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-898"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-899"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-900"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-901"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-902"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"compound_stmt NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-903"&gt;        stmt_ty a&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-904"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; newline_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-905"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-906"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;a &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; compound_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// compound_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-907"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-908"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;newline_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; NEWLINE&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='NEWLINE'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-909"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-910"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-911"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"compound_stmt NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-912"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; _PyPegen_singleton_seq &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; a &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-913"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-914"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-915"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-916"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-917"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-918"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-919"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-920"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-921"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-922"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"compound_stmt NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-923"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-924"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// simple_stmts&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-925"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-926"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-927"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-928"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-929"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"simple_stmts"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-930"&gt;        asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; simple_stmts_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-931"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-932"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;simple_stmts_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; simple_stmts_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// simple_stmts&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-933"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-934"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-935"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"simple_stmts"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-936"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; simple_stmts_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-937"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-938"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-939"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-940"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-941"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"simple_stmts"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-942"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-943"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// NEWLINE&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-944"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-945"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-946"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-947"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-948"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-949"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; newline_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-950"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-951"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;newline_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; NEWLINE&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='NEWLINE'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-952"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-953"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-954"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-955"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-956"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-957"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-958"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-959"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-960"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-961"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-962"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-963"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-964"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; asdl_stmt_seq&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; _PyPegen_singleton_seq &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; CHECK &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; stmt_ty &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyAST_Pass &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-965"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-966"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-967"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-968"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-969"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-970"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-971"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-972"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-973"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-974"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"NEWLINE"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-975"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-976"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// $&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-977"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-978"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-979"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-980"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-981"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"$"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-982"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; endmarker_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-983"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-984"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;endmarker_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; ENDMARKER&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='ENDMARKER'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-985"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-986"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-987"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"$"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-988"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_interactive_exit &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; p &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-989"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-990"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-991"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-992"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-993"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-994"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-995"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-996"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-997"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; statement_newline[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-998"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"$"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-999"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1000"&gt;    _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1001"&gt;  done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1002"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1003"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; _res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1004"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1005"&gt;&lt;/span&gt;
&lt;span id="cb1-1006"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 并不短，可以看到函数里应对各种不同的需要换行的情况给出了对应的 asdl_stmt_seq，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1007"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 当然，作为一个不懂编译原理的人，在这里我就需要小心翼翼地绕开这些 asdl打头的函数&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1008"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 在这里，我们可以关注到两个函数，分别是simple_stmts_rule，和 compound_stmt_rule，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1009"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 显然，这两个函数就是语法规则了。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1010"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 选一个simple吧&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1011"&gt;&lt;/span&gt;
&lt;span id="cb1-1012"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// simple_stmts: simple_stmt !';' NEWLINE | ';'.simple_stmt+ ';'? NEWLINE&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1013"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// simple_stmts_rule函数非常长，并且里面其实是子啊重复调用simple_stmt_rule，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb1-1014"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 那么我们直接看这个simple_stmt_rule吧。&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="code-copy-outer-scaffold"&gt;&lt;div class="sourceCode" id="cb2" style="background: #f1f3f5;"&gt;&lt;pre class="sourceCode c code-with-copy"&gt;&lt;code class="sourceCode c"&gt;&lt;span id="cb2-1"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 单个代码块太大会让我的编辑器很卡，所以我在这里换行一下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-2"&gt;&lt;/span&gt;
&lt;span id="cb2-3"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// simple_stmt:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-4"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | assignment&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-5"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | star_expressions&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-6"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'return' return_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-7"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;('import' | 'from') import_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-8"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'raise' raise_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-9"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | 'pass'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-10"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | 'thanks'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-11"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'del' del_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-12"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'yield' yield_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-13"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'assert' assert_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-14"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | 'break'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-15"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | 'continue'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-16"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'global' global_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-17"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//     | &amp;amp;'nonlocal' nonlocal_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-18"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; stmt_ty&lt;/span&gt;
&lt;span id="cb2-19"&gt;simple_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;Parser &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-20"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-21"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; MAXSTACK&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-22"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-23"&gt;        PyErr_NoMemory&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-24"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-25"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-26"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-27"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-28"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-29"&gt;    stmt_ty _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-30"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_PyPegen_is_memoized&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; simple_stmt_type&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&lt;/span&gt;_res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-31"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-32"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; _res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-33"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-34"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-35"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fill &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; _PyPegen_fill_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;lt;&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-36"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-37"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-38"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-39"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-40"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _start_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tokens&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;[&lt;/span&gt;_mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;]-&amp;gt;&lt;/span&gt;lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-41"&gt;    UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_start_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-42"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _start_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tokens&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;[&lt;/span&gt;_mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;]-&amp;gt;&lt;/span&gt;col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-43"&gt;    UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_start_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-44"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// assignment&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-45"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-46"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-47"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-48"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-49"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"assignment"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-50"&gt;        stmt_ty assignment_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-51"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-52"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;assignment_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; assignment_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// assignment&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-53"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-54"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-55"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"assignment"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-56"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; assignment_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-57"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-58"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-59"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-60"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-61"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"assignment"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-62"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-63"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// star_expressions&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-64"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-65"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-66"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-67"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-68"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"star_expressions"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-69"&gt;        expr_ty e&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-70"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-71"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;e &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; star_expressions_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// star_expressions&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-72"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-73"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-74"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"star_expressions"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-75"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-76"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-77"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-78"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-79"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-80"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-81"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-82"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-83"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-84"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Expr &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; e &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-85"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-86"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-87"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-88"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-89"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-90"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-91"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-92"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-93"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-94"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"star_expressions"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-95"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-96"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'return' return_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-97"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-98"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-99"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-100"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-101"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'return' return_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-102"&gt;        stmt_ty return_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-103"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-104"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;520&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='return'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-105"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-106"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;return_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; return_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// return_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-107"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-108"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-109"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'return' return_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-110"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; return_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-111"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-112"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-113"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-114"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-115"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'return' return_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-116"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-117"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;('import' | 'from') import_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-118"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-119"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-120"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-121"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-122"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;('import' | 'from') import_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-123"&gt;        stmt_ty import_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-124"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-125"&gt;            _PyPegen_lookahead&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _tmp_6_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-126"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-127"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;import_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; import_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// import_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-128"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-129"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-130"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;('import' | 'from') import_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-131"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; import_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-132"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-133"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-134"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-135"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-136"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;('import' | 'from') import_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-137"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-138"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'raise' raise_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-139"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-140"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-141"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-142"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-143"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'raise' raise_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-144"&gt;        stmt_ty raise_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-145"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-146"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;523&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='raise'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-147"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-148"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;raise_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; raise_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// raise_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-149"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-150"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-151"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'raise' raise_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-152"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; raise_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-153"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-154"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-155"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-156"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-157"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'raise' raise_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-158"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-159"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 'pass'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-160"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-161"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-162"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-163"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-164"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'pass'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-165"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; _keyword&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-166"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-167"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_keyword &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;504&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='pass'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-168"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-169"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-170"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'pass'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-171"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-172"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-173"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-174"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-175"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-176"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-177"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-178"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-179"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-180"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Pass &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-181"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-182"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-183"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-184"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-185"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-186"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-187"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-188"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-189"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-190"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'pass'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-191"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-192"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 'thanks'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-193"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-194"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-195"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-196"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-197"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'thanks'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-198"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; _keyword&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-199"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-200"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_keyword &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;505&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='thanks'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-201"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-202"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-203"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'thanks'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-204"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-205"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-206"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-207"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-208"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-209"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-210"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-211"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-212"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-213"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Thanks &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-214"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-215"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-216"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-217"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-218"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-219"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-220"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-221"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-222"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-223"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'thanks'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-224"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-225"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'del' del_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-226"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-227"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-228"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-229"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-230"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'del' del_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-231"&gt;        stmt_ty del_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-232"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-233"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;604&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='del'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-234"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-235"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;del_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; del_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// del_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-236"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-237"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-238"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'del' del_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-239"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; del_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-240"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-241"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-242"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-243"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-244"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'del' del_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-245"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-246"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'yield' yield_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-247"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-248"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-249"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-250"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-251"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'yield' yield_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-252"&gt;        stmt_ty yield_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-253"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-254"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;574&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='yield'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-255"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-256"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;yield_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; yield_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// yield_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-257"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-258"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-259"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'yield' yield_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-260"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; yield_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-261"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-262"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-263"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-264"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-265"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'yield' yield_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-266"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-267"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'assert' assert_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-268"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-269"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-270"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-271"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-272"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'assert' assert_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-273"&gt;        stmt_ty assert_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-274"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-275"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;527&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='assert'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-276"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-277"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;assert_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; assert_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// assert_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-278"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-279"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-280"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'assert' assert_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-281"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; assert_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-282"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-283"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-284"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-285"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-286"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'assert' assert_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-287"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-288"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 'break'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-289"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-290"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-291"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-292"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-293"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'break'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-294"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; _keyword&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-295"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-296"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_keyword &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;509&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='break'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-297"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-298"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-299"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'break'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-300"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-301"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-302"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-303"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-304"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-305"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-306"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-307"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-308"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-309"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Break &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-310"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-311"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-312"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-313"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-314"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-315"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-316"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-317"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-318"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-319"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'break'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-320"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-321"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 'continue'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-322"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-323"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-324"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-325"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-326"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'continue'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-327"&gt;        Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; _keyword&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-328"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-329"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_keyword &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;510&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='continue'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-330"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-331"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-332"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'continue'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-333"&gt;            Token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyPegen_get_last_nonnwhitespace_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-334"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_token &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-335"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-336"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-337"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-338"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_lineno &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-339"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-340"&gt;            &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; _end_col_offset &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-341"&gt;            UNUSED&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_end_col_offset&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Only used by EXTRA macro&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-342"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _PyAST_Continue &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt; EXTRA &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-343"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;_res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt; PyErr_Occurred&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;())&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-344"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-345"&gt;                p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-346"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-347"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-348"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-349"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-350"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-351"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-352"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"'continue'"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-353"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-354"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'global' global_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-355"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-356"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-357"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-358"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-359"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'global' global_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-360"&gt;        stmt_ty global_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-361"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-362"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;524&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='global'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-363"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-364"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;global_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; global_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// global_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-365"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-366"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-367"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'global' global_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-368"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; global_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-369"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-370"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-371"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-372"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-373"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'global' global_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-374"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-375"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// &amp;amp;'nonlocal' nonlocal_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-376"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-377"&gt;            p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-378"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-379"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-380"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;&amp;gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'nonlocal' nonlocal_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-381"&gt;        stmt_ty nonlocal_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-382"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-383"&gt;            _PyPegen_lookahead_with_int&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _PyPegen_expect_token&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;525&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// token='nonlocal'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-384"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-385"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;nonlocal_stmt_var &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; nonlocal_stmt_rule&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt;  &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// nonlocal_stmt&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-386"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-387"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-388"&gt;            D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;+ simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; succeeded!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'nonlocal' nonlocal_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-389"&gt;            _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; nonlocal_stmt_var&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-390"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;goto&lt;/span&gt; done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-391"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-392"&gt;        p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-393"&gt;        D&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%*c%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; simple_stmt[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;]: &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%s&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt; failed!&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-394"&gt;                  p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;error_indicator &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"ERROR!"&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"-"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&amp;amp;'nonlocal' nonlocal_stmt"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;));&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-395"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-396"&gt;    _res &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-397"&gt;  done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-398"&gt;    _PyPegen_insert_memo&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _mark&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; simple_stmt_type&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; _res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-399"&gt;    p&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;level&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;--;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-400"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; _res&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-401"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-402"&gt;&lt;/span&gt;
&lt;span id="cb2-403"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 可以看到，这里对所有的simple statement都做了实现，那些compound statement就是类似def之类。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-404"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 选一个我喜欢的关键字pass吧，可以看到这样一段代码&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-405"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// (_keyword = _PyPegen_expect_token (p, 504))  // token='pass'&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-406"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// _PyPegen_expect_token 这个方法在之前的newline token那里也出现过，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-407"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 所以，可见所有的token都是由这个方法生成的。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-408"&gt;&lt;/span&gt;
&lt;span id="cb2-409"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 进去以后又是非常非常多层的调用，避免篇幅过长就不一一展示了，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-410"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 最终可以确定到tokenizer.c里面的tok_get&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-411"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 也就是最早最早我在例子里说到的这个长达几百行的函数&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-412"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 给出一小段&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-413"&gt;&lt;/span&gt;
&lt;span id="cb2-414"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-415"&gt;tok_get&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;struct&lt;/span&gt; tok_state &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;**&lt;/span&gt;p_start&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;const&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;char&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;**&lt;/span&gt;p_end&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-416"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-417"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// printf("[start] tokenizer.c tok_get is called\n");&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-418"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; c&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-419"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; blankline&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; nonascii&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-420"&gt;&lt;/span&gt;
&lt;span id="cb2-421"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p_start &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;p_end &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-422"&gt;  nextline&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-423"&gt;    tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;start &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-424"&gt;    blankline &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-425"&gt;&lt;/span&gt;
&lt;span id="cb2-426"&gt;    &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Get indentation level */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-427"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;atbol&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-428"&gt;        &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-429"&gt;        &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; altcol &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-430"&gt;        tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;atbol &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-431"&gt;        &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; cont_line_col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-432"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(;;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-433"&gt;            c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok_nextc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-434"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;' '&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-435"&gt;                col&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++,&lt;/span&gt; altcol&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-436"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-437"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\t&lt;/span&gt;&lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-438"&gt;                col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tabsize &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;+&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;tabsize&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-439"&gt;                altcol &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;altcol &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/&lt;/span&gt; ALTTABSIZE &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;+&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt; ALTTABSIZE&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-440"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-441"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\014&lt;/span&gt;&lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;  &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Control-L (formfeed) */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-442"&gt;                col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; altcol &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; &lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;0&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* For Emacs users */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-443"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-444"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\\&lt;/span&gt;&lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-445"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Indentation cannot be split over multiple physical lines&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-446"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// using backslashes. This means that if we found a backslash&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-447"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// preceded by whitespace, **the first one we find** determines&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-448"&gt;                &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// the level of indentation of whatever comes next.&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-449"&gt;                cont_line_col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; cont_line_col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;?&lt;/span&gt; cont_line_col &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;:&lt;/span&gt; col&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-450"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;((&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok_continuation_line&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;))&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt;&lt;span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;1&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-451"&gt;                    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; ERRORTOKEN&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-452"&gt;                &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-453"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-454"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-455"&gt;                &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;break&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-456"&gt;            &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-457"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-458"&gt;        tok_backup&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; c&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-459"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'#'&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;||&lt;/span&gt; c &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; &lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;\n&lt;/span&gt;&lt;span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;'&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-460"&gt;        。。。。。。&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-461"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-462"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-463"&gt;            &lt;/span&gt;
&lt;span id="cb2-464"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 可以看到，这个方法所处理的第一个内容就是python的缩进，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-465"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 对的，在python中，缩进是一个单独的token&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-466"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 可以看到下面紧接着处理的是注释和换行符&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-467"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 至于这个方法是如何获得我们写的文本，我们进入tok_nextc看一下&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-468"&gt;&lt;/span&gt;
&lt;span id="cb2-469"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Get next char, updating state; error code goes into tok-&amp;gt;done */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-470"&gt;&lt;/span&gt;
&lt;span id="cb2-471"&gt;&lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;static&lt;/span&gt; &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-472"&gt;tok_nextc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;&lt;span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;struct&lt;/span&gt; tok_state &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;*&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-473"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-474"&gt;    &lt;span class="dt" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;int&lt;/span&gt; rc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-475"&gt;    &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;for&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(;;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-476"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;inp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-477"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; Py_CHARMASK&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(*&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;++);&lt;/span&gt; &lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;/* Fast path */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-478"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-479"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;done &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; E_OK&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-480"&gt;           &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-481"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-482"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;fp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;==&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-483"&gt;            rc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok_underflow_string&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-484"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-485"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;prompt &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;!=&lt;/span&gt; NULL&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-486"&gt;            rc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok_underflow_interactive&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-487"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-488"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;else&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-489"&gt;            rc &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok_underflow_file&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-490"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-491"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#if defined(Py_DEBUG)&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-492"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;debug&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-493"&gt;            fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"line[&lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;] = "&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;lineno&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-494"&gt;            print_escape&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;inp &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-495"&gt;            fprintf&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(&lt;/span&gt;stderr&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; &lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"  tok-&amp;gt;done = &lt;/span&gt;&lt;span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;%d\n&lt;/span&gt;&lt;span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;"&gt;"&lt;/span&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;,&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;done&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-496"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-497"&gt;&lt;span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;"&gt;#endif&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-498"&gt;        &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;if&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;(!&lt;/span&gt;rc&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;)&lt;/span&gt; &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-499"&gt;            tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;inp&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-500"&gt;            &lt;span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;"&gt;return&lt;/span&gt; EOF&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-501"&gt;        &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-502"&gt;        tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;line_start &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;=&lt;/span&gt; tok&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;-&amp;gt;&lt;/span&gt;cur&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-503"&gt;    &lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-504"&gt;    Py_UNREACHABLE&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;();&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-505"&gt;&lt;span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-506"&gt;&lt;/span&gt;
&lt;span id="cb2-507"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// tok_state 主要是存储文件阅读的情况，比如现在tokenizer正读到第几个字就是tok-&amp;gt;cur&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-508"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这里就很清楚的看到，用Py_CHARMASK这个宏转换了一下tok-&amp;gt;cur的下一个字符&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-509"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// /* Argument must be a char or an int in [-128, 127] or [0, 255]. */&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-510"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// #define Py_CHARMASK(c) ((unsigned char)((c) &amp;amp; 0xff))&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-511"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 宏的定义在这里&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-512"&gt;&lt;/span&gt;
&lt;span id="cb2-513"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 这么看来，我写的所有python文本都在这个存在tok_state里面，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-514"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 的确，如果去看tok_state的实现，可以看到其第一个参数就是buf，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-515"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 存储的就是字符串形式的文本信息。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-516"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 而这个文本信息自从被打开以后就一直存在FILE fp里面，作为参数传递&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-517"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 直到 _PyPegen_run_parser_from_file_pointer 函数，有这么一行&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-518"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// struct tok_state *tok = _PyTokenizer_FromFile(fp, enc, ps1, ps2);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-519"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// fp的信息被写进了tok_state,而后，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-520"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// Parser *p = _PyPegen_Parser_New(tok, start_rule, parser_flags, PY_MINOR_VERSION,&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-521"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;//                                    errcode, arena);&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-522"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// tok 这个变量又被作为参数用于生成 parser 了。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-523"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 再往后这个parser就一直作为变量传递到底层，&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-524"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 一直到tokenizer.c这个文件之后，p-&amp;gt;tok 这个参数又重新被拿出来使用。&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-525"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 也正因为如此，在最底层的 tok_nextc 才可以持续读出字符&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-526"&gt;&lt;/span&gt;
&lt;span id="cb2-527"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 终于，我们已经完成了全部全部的步骤，知道当我们在python里敲下回车的时候都发生了什么&lt;/span&gt;&lt;/span&gt;
&lt;span id="cb2-528"&gt;&lt;span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"&gt;// 虽然很不完全，呵呵&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;至此，在小心翼翼地绕开了AST部分之后，代码的tracing就已经结束了。&lt;/p&gt;
&lt;p&gt;回头看来，每个函数的结构都不复杂，但是调用层数多达几十上百层以后确实让人眼花缭乱。&lt;/p&gt;
&lt;p&gt;一个较大项目的源码并不是说啃就能啃下来的，特别是在翻遍了国内外的互联网也没有找到详细的资料的时候。所以，借此机会，我决定记录一下我的探索，虽然不一定能帮到后来者。&lt;/p&gt;
&lt;p&gt;最终，弄明白一切之后，我也就仅仅给尚未新生的pPy添加了一个关键字，thanks，语法和pass无异。然后，我写了我的第一个，也许也是全世界唯一一份pPy程序，只有一个词，thanks。它会一路从main调用到tok_nextc，然后再返回，但是什么都达成不了，就和没做一样，就和我做的这些一样。不过，至少编译通过的时候我还是挺开心的，我知道后续若想让pPy可以实现a++的语法也不难了。&lt;/p&gt;
&lt;p&gt;在长达或是短至十个小时的挣扎后，我们可怜的pPy算是寿终正寝或是胎死腹中了。我自问，潜下心来，一点点在CPython里把这个小项目做出来并不是一件不可能的事，但是，我哪里来的这些时间呢？这个没有生产力的小项目做出来又有什么用呢？我花费的这些时间和心血最终能有回报吗？&lt;/p&gt;
&lt;p&gt;临时兴起很容易，做下去很难。&lt;/p&gt;
&lt;p&gt;pPy死了，和我曾打过的许多小算盘埋在一起，没有坟墓。&lt;/p&gt;



 </description>
<category>日常</category>
<category>学习笔记</category>
<guid>https://midstream.cn/posts/在pPy同志追悼会上的祷词/</guid>
<pubDate>Sun, 04 Sep 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>Long Distance</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/LongDistance/</link>
<description> 






&lt;p&gt;转自纽约客 &lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;起床之后，文文换了床单。昨日购买的郁金香躺在梳妆台上。厨房的桌子上有康乃馨，鲜活、雀跃，插在一个矮玻璃瓶中。&lt;/p&gt;
&lt;p&gt;冰箱里塞得很满，橄榄、果酱、熏火腿片、奶酪，她买了红酒、面包，还有在罗马咖啡厅常见的圆饼干。他们很显然吃不完这么多。&lt;/p&gt;
&lt;p&gt;文文其实不想就这样烂在房间里，她向往着砖石街道上的白鸽和阳光。但同时，她又想着和韦恩瘫在被窝里，深溺于鹅绒的海浪，慵懒得像一只猫。她很喜欢在床上吃饭的点子，尽管这似乎有些不切实际——弄不好会搞得一团糟，而且没地方放盘子。这需要些许提前的安排，安排在傍晚，她想，夕阳最适合佐啤酒，金黄的阳光将窗户的网格投射在被子上。她还计划着很多，关于一切他和他会一起做的事情。&lt;/p&gt;
&lt;p&gt;她的手机响了，是他的消息：刚下飞机，出了机场就打车过来。&lt;/p&gt;
&lt;p&gt;他是说他等不及了，但这热切在冷冰冰的短信上显得很违和。她想，或许在这见面前最后的一小时里不打电话是他欲擒故纵的小情趣吧。&lt;/p&gt;
&lt;p&gt;自韦恩买了机票之后的这几周，他们之间的交流并不频繁。而之前，恋情尚新鲜时，他们常常闲暇时发消息，或通话至深夜。&lt;/p&gt;
&lt;p&gt;这和在加利福尼亚的经历不同，那时文文在那边做一个课题，而韦恩在附近的城镇里做工程师，他们直到文文离开的前一个月才见到面。在共同的朋友家晚餐后，他们在深夜一同回到了文文的公寓：这是他们之间的秘密，但尴尬的是，略欠热烈与浪漫的同时又略显轻浮。最后一周时，他们去了一个餐厅，心照不宣地想用一场充满仪式感的告别为他们的关系正名。&lt;/p&gt;
&lt;p&gt;然而，当文文到罗马后，他们的通信又突然间变得暧昧起来，言语也不经意间放肆。她在信里写清晨的河畔，暮色下的摊贩与凉亭，她甚至专门去偏僻的小展馆只为在信里貌似不经意提上一嘴。她专心地用书信塑造着自己对生活的热情。&lt;/p&gt;
&lt;p&gt;她如今在罗马的职务是一名语言学博士后。她会坐地铁去那所保留着法西斯建筑的大学，在校园咖啡厅和同事们吃午餐，周末他们会一起去喝酒或爬山。文文其实和享受在学术环境里的生活，她欣赏同事们的热情、节制、理性和包容。不过这些都不会出现在写给韦恩的信里，她希望自己在他眼中是——一位住在罗马的女孩儿，痴迷于生活本身。&lt;/p&gt;
&lt;p&gt;韦恩说，他每次都满怀欣喜的期待她的信，她的文字让他仿佛生活在这座自己从未去过的城市。如果没有信件的沟通，文文或许会觉得罗马这座城市有些割裂，或者说不和谐，只有每次信中她带着偏颇的呈现才让她自己意识到这座城市那些可爱的地方。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;听到楼下计程车停下的声音，她穿好衣服下楼。&lt;/p&gt;
&lt;p&gt;韦恩有些凌乱地从车上下来。外套、毛衣、背包、还有挂在脖子上的耳机。他现在似乎比她记忆中的样子要矮，且苍白。他似乎有些疑惑的样子。&lt;/p&gt;
&lt;p&gt;文文隔着些距离向司机喊话，谢谢，再见，谢谢你了！实际上，她可以更隐晦地炫耀自己的意大利语的，但她没有憋住。&lt;/p&gt;
&lt;p&gt;嘿！韦恩向她打招呼。他们互相亲吻了一下，在嘴唇和脸颊之间的地方。&lt;/p&gt;
&lt;p&gt;上楼后，他们把行李箱放进卧室，然后坐到厨房桌前。韦恩并没有很饿，他吃了几块碗里切好的水果。&lt;/p&gt;
&lt;p&gt;“要小睡一会儿吗？”&lt;/p&gt;
&lt;p&gt;“哦不用了，”韦恩说，“那我可能下午就起不来了，要不趁着我们还有精神出去转转吧。”&lt;/p&gt;
&lt;p&gt;我当然不想睡觉，我想和你在一起啊，他明明可以这么说的，毕竟我们才刚重聚。&lt;/p&gt;
&lt;p&gt;她在她的连衣裙外面套了一件无袖的长外套，这是她上周专门新买的。韦恩穿上他的运动鞋。&lt;/p&gt;
&lt;p&gt;他们沿着电车轨道一路走到了河边，一路上他们没说话，文文略有些不自在。到萨布桥边时，韦恩拉住她的手。&lt;/p&gt;
&lt;p&gt;“再往前点就是我最喜欢的桥了，”文文说，“我们过会儿会走这座桥的。”&lt;/p&gt;
&lt;p&gt;“我相信导游的话。”韦恩说。&lt;/p&gt;
&lt;p&gt;再一次的，文文开始为他们即将到来的周末感到兴奋。在加州时，她总觉得他对自己的感觉十分摇摆。他们第一次上床时，她甚至觉得他很抗拒。在这几个月的通信里也是如此，她对韦恩的感觉同样不稳定，有时他能准确地嗅到她信里的精心的伏笔，有时又展现出一幅木讷的直男面孔。每当这时她就生出些怨气：在她到罗马之前，她朋友就总拿那些意大利男人开她玩笑。想到自己在这轻浮的城市里依然努力坚守，而他却如同一块石头一般，一股委屈就在心里徘徊。毕竟按照她信里所塑造的，一位着迷于世界和生活的女士，理应让其他人为她所着迷。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 她曾走过一次去往餐厅的路，还为此特意找了一条藤萝摇坠的小径。她有点得意于发现的这条小路，餐厅的后花园宽敞而明媚。服务员开朗随和，没有对文文的意大利语表现出不耐烦。他们点了意大利特色的前菜，韦恩建议来点啤酒。在等待上菜的时候，文文把手伸过桌子，在他的手背和小臂上摩挲。&lt;/p&gt;
&lt;p&gt;之后，他们爬了洛山，从山丘上俯瞰这座城市。文文说起她学校里的同事们，加以些许恰到好处的浮夸演绎。他是个好听众，不打断不质疑，安静地听她说起那些天才或是傻瓜。回到河岸，他们坐在温柔的蜂蜜色的灯下，来了一杯清冽的橙子酒。酒意让谈话活跃起来，他们的手在桌下热烈地相互纠缠、抚摸。&lt;/p&gt;
&lt;p&gt;“回家吧。”文文说，然后招来服务员。他们就这样一直走到桥边时她才意识到其实他们大可以直接打的回家。&lt;/p&gt;
&lt;p&gt;“我在飞机上遇到了一件很怪的事儿。”韦恩突然说道。他们此刻正在桥上漫步，他的手绕过她纤细的腰，她半倚着他，夸大着酒意走出摇曳性感的步伐。&lt;/p&gt;
&lt;p&gt;“当时我边上有位女士。”&lt;/p&gt;
&lt;p&gt;“Wow，漂亮吗？”&lt;/p&gt;
&lt;p&gt;“她跟我说了一个离谱的故事。”&lt;/p&gt;
&lt;p&gt;“我喜欢夸张的故事，”她含糊到。&lt;/p&gt;
&lt;p&gt;“我感觉她可能几个月都没有和任何人说过话，我挺同情她的。”&lt;/p&gt;
&lt;p&gt;“你这是在试图让我吃醋？”她俏皮而腼腆地抬头看向他，露出微笑。&lt;/p&gt;
&lt;p&gt;韦恩停下来，收回放在她腰侧的手。他脸上的伤心，或者说失望，让文文觉得很傲慢。&lt;/p&gt;
&lt;p&gt;“她是真的遇到麻烦了，”韦恩认真地说，“她是个老太太。”&lt;/p&gt;
&lt;p&gt;“哦，好吧，”文文说，“你一开始不说，我怎么知道她是个老太太呢？”&lt;/p&gt;
&lt;p&gt;他们的谈话多少就到此为止了。文文的骄傲让她没去问那个老太太到底说了什么，韦恩也没有再说下去。&lt;/p&gt;
&lt;p&gt;回到公寓，韦恩问她是不是让她不开心了，如果是的，他很抱歉。&lt;/p&gt;
&lt;p&gt;他们坐在厨房的桌子边。&lt;/p&gt;
&lt;p&gt;文文确实有点感到扫兴，但她打算只要韦恩再表现一点歉意她就不追究了。韦恩确实再次道歉了，却紧接着提醒，或许该睡觉了。&lt;/p&gt;
&lt;p&gt;韦恩绝不是不解风情的人，他意识到自己扫了兴，并及时地表现出谦逊。若非如此文文或许会真的发火，但此刻，韦恩的得体反倒让她更加憋闷。&lt;/p&gt;
&lt;p&gt;“你要是想睡就睡咯。”文文站起来往卧房去，却恍然发现最后一丝挽回今夜的机会已经被自己掐灭。她脱下外衣，换上T恤和短裤。&lt;/p&gt;
&lt;p&gt;当韦恩进来时，她正背对门躺着。他在行李箱里摸索着，然后蹑手蹑脚地洗漱，上床。有那么几分钟，他们似乎都在等对方开口。&lt;/p&gt;
&lt;p&gt;文文感受到背后传来的呼吸声逐渐平稳沉闷。&lt;/p&gt;
&lt;p&gt;文文两条腿相互摩擦了一下，她自己感受着自己光滑的皮肤，沮丧地想到今天的蕾丝睡衣是白穿了。 &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;事实上，在文文来到罗马之后是有过一次艳遇的。她和同事们于一个周日探访亚壁古道，有人邀请了一位堂兄，他来时穿着皮夹克和乐福鞋，叫里卡多。&lt;/p&gt;
&lt;p&gt;他看着这群外国人的运动服和水瓶，摇头打趣道，“你们这是要去爬珠峰吗？”他和文文排在一列，一起走完了大半的路程。里卡多在路上风趣地谈起这条小道的历史，文文侧耳倾听，没让里卡多发现她作为一名学者在这方面懂得远比他多。他的故事讲的十分生动，称赞着文文的敏锐和聪颖，并时不时开别人一个大胆的玩笑。之后大家前往野餐，文文和里卡多暂时分开加入了不同的讨论。准备离开时，里卡多告诉文文他们的住所离得不远，他可以送她回去。接着他们一同走进了文文家门口的一家小酒吧。&lt;/p&gt;
&lt;p&gt;酒吧里，文文告诉里卡多，她已经处于一段关系里了。她说起这些只是为了减轻负罪感，同时也不想里卡多陷入窘境，文文心里对里卡多并没有什么抗拒。被人争夺的感觉总是好的。听了她的坦白后，里卡多把放在她脸侧的手轻轻拿开了，他们付清了酒钱，里卡多对她道了晚安。 &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;脱离了明媚晴空的渲染，雨天的罗马并不浪漫。你需要去适应一座城市不加粉饰的样子，正如你要接受卸下华丽妆容后的伴侣。&lt;/p&gt;
&lt;p&gt;这正是个雨天的早上，阴冷、潮湿。文文把电暖器搬出来，他们穿上袜子和毛衣，在桌边喝茶。&lt;/p&gt;
&lt;p&gt;“我们可以去马西莫宫，”文文说，“或者去博盖斯，不过肯定要打车。”&lt;/p&gt;
&lt;p&gt;“那你更想去哪？”&lt;/p&gt;
&lt;p&gt;“我本来打算我们一起散步从公园穿到博盖斯去，”文文停了一下，“但现在显然是不行了。”&lt;/p&gt;
&lt;p&gt;“那就选另一个好了。”韦恩说。&lt;/p&gt;
&lt;p&gt;他们很快穿戴整齐。韦恩走到文文面前，双手扶着她的肩膀让她看向他，然后给了她一个大大的拥抱。“能来这里我真的很开心。”他说。&lt;/p&gt;
&lt;p&gt;“昨天我有些矫情了……”文文说。&lt;/p&gt;
&lt;p&gt;“哦不不，我也很为抱歉。”&lt;/p&gt;
&lt;p&gt;“我自己毁了一个浪漫的夜晚。”文文摇头。&lt;/p&gt;
&lt;p&gt;“没有，那依然是个美好的晚上，”韦恩说，“只是有点小波折罢了。&lt;/p&gt;
&lt;p&gt;“我当时也没有吃醋或怎么样，”文文说，“就是犯傻了。”&lt;/p&gt;
&lt;p&gt;在出租车上的时候，韦恩说起了故事的后续，文文没有再开口打断。但是他错过了两边的风景了，文文想。&lt;/p&gt;
&lt;p&gt;那天飞机上坐在韦恩旁边的女士早在其很年轻的时候就结婚了，然而婚后不久，一些问题就逐渐暴露出来。结婚前，她没能从他身上看出什么预兆，只是觉得他有些怪。她遇到他时，他应该是卖肉的，就在她家不远处，然而一次她出城后才发现，她丈夫在这一带声名狼藉，被称为屠夫。但那时已经太晚了，她已经怀上了屠夫的孩子。在生下小孩之后，他和孩子度过了人质一般的十年。&lt;/p&gt;
&lt;p&gt;“等一下，”文文说，“什么？”&lt;/p&gt;
&lt;p&gt;这是很久以前的事儿了，韦恩接着说，而且也不是完全像恐怖故事或者新闻那样浮夸。那个女人被囚禁时仍然有些许自由，而且最终她和女儿想办法逃跑了。这不算是分局，她确实是想办法逃离了。韦恩补充说这个故事本身肯定复杂得多，不知道她们怎么做到的，屠夫再也没法找到她们，打扰她们了。&lt;/p&gt;
&lt;p&gt;“我觉得你还是不要再用’屠夫‘这样的称呼，”文文说，“而且这个故事太不靠谱了。”&lt;/p&gt;
&lt;p&gt;“她当时就是这么称呼那个男人的，”韦恩说，“她不想说起他的名字。后面还有更糟的，她上飞机前才参加了一场葬礼。”&lt;/p&gt;
&lt;p&gt;“谁的葬礼？”&lt;/p&gt;
&lt;p&gt;“那个屠夫的。”&lt;/p&gt;
&lt;p&gt;“你能不能别说屠夫了？”文文皱了眉头，“而且她为什么要去参加他的葬礼？”&lt;/p&gt;
&lt;p&gt;“她带着女儿去的，这是一种解脱。”&lt;/p&gt;
&lt;p&gt;“那个女的是意大利人？”&lt;/p&gt;
&lt;p&gt;“不是，但她很多年前就搬到罗马了。她把罗马当自己的家了。她现在是一名画家，这是在她遇到屠…她老公之前她一直梦想的职业。”&lt;/p&gt;
&lt;p&gt;“胡说八道，”文文说，“这不可能是真的。”&lt;/p&gt;
&lt;p&gt;“这是真的，她还得过奖。”&lt;/p&gt;
&lt;p&gt;“她成为了一名画家然后住到罗马？她在逃离施虐者十年后又回到他的葬礼上？”&lt;/p&gt;
&lt;p&gt;“人都可以重新来过的。”韦恩说。&lt;/p&gt;
&lt;p&gt;“我不知道，”文文说，“这多少有点太离谱了。”&lt;/p&gt;
&lt;p&gt;“好吧，毕竟你当时没亲耳听她说。”&lt;/p&gt;
&lt;p&gt;他们此刻已经快到宫殿了，文文打算结束这个话题。&lt;/p&gt;
&lt;p&gt;“这是个可怕的故事，”文文手里拿了刚买的门票，“你当时听完应该挺难过的。”&lt;/p&gt;
&lt;p&gt;他们到了壁画馆，绘满繁盛植物和小鸟的房间让他们的心情从方才的紧张中舒缓了下来。当他们出来时，已经是雨过天晴。他们站在人行道，看着晴空下来往的车流，突然又感到这是明媚而崭新的一天。&lt;/p&gt;
&lt;p&gt;“我饿了，”韦恩说。他们在售货亭前吃了腊肠帕尼尼，然后走到海龟喷泉，坐在空旷的广场上。韦恩说，今天就算之后啥也不做也仍然美好。他们早早回家了，没有在外面晚餐或是小酌一杯。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; 或许是因为几个月来太多的想象，直到他们真正纠缠在一起时文文才回忆起被幻想掩盖的真实——他并不激烈，而是害羞般不愿直视她。在加利福尼亚时，她没有责怪他的草草收场，也没有坚持让他慢下来或是眼神接触。如今她所需求的肯定更多。文文感受到刺痛，她猛地拉紧他让他停一下，再用双手引导着他的动作。她不知道这种痛是哪来的，是她自己在装模做样？抑或是心里的芥蒂导致的？&lt;/p&gt;
&lt;p&gt;无论如何，他们结束了。性事不是负担，不该如巨石一般压在心头。他们躺在床上温存了一会儿，闲扯三五句。在楼下咖啡厅吃了早餐，文文建议他们去梵蒂冈，或是罗马论坛。&lt;/p&gt;
&lt;p&gt;“这次出行会很棒的，我可不会让你白来一趟罗马。”&lt;/p&gt;
&lt;p&gt;“拿些自拍杆，”韦恩说，“还有腰包和帽子。”&lt;/p&gt;
&lt;p&gt;文文对这些和通信截然不同的体验感到欣喜。他们去了伯格赛美术馆，穿过公园，走过西班牙阶梯。韦恩说，作为重头戏的博物馆可以留到下次看。&lt;/p&gt;
&lt;p&gt;这是个瞬息的小美好，因为他们正畅想着下次。&lt;/p&gt;
&lt;p&gt;他们坐在教堂对面，各自吃了一大杯冰激凌。&lt;/p&gt;
&lt;p&gt;美好的一天，他们各自如是想到。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;在大学里，韦恩和文文的名字总被人拿来开玩笑。名字的巧合似乎让他们的关系显得更合理，似乎注定要在命运里相逢一样。&lt;/p&gt;
&lt;p&gt;文文的同事们周末约在奥斯汀斯的一家酒吧聚会，文文说她可能会带上韦恩一起去。“如果你不是太忙的话。”同事略带调侃意味地给她留了个台阶。&lt;/p&gt;
&lt;p&gt;看韦恩吃完冰激凌后，文文问他愿不愿意去参加她同同事的聚会。&lt;/p&gt;
&lt;p&gt;“只要你不觉得尴尬就好。”&lt;/p&gt;
&lt;p&gt;文文喜欢这个回答。 &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;她们沿着河走到一个被改造成酒吧街的旧工业区。文文的同事们坐在后面一张长桌边，桌上有一些炸肉和空杯子。当他们走进的时候，人们欢呼起来，“双W情侣来了！”他们过分的热情仿若是为了在韦恩这个外人面前炫耀小团体内部的紧密。&lt;/p&gt;
&lt;p&gt;拉丁语学者托马斯从后面搂住他俩，“喝点啥？”他问。&lt;/p&gt;
&lt;p&gt;韦恩要了啤酒，文文要了一杯红酒。当托马斯转身走向吧台的时候，文文看到长桌远端的里卡多。她并没有想到会在这儿碰到他，一时间有点慌张。文文提醒自己，他们之间并没有发生什么。如果里卡多有轻浮的表现，她大可以和韦恩说她第一次碰到里卡多的时候他也是这样。&lt;/p&gt;
&lt;p&gt;里卡多正在和丽贝卡，一名数字存档方向的同事交谈，他侧过头来，和文文的目光有一瞬相触。他狡黠地一眨眼，似乎在说”哦真巧我们又见面了。“又或是在说”哇哦，瞧瞧你，带着男友来了。” 里卡多玩味但友善的眼神让文文感到很愉悦，他拉着韦恩绕桌转了一圈，一一介绍同事们。&lt;/p&gt;
&lt;p&gt;“这是里卡多，我们徒步时他是个优秀的向导。”&lt;/p&gt;
&lt;p&gt;里卡多拍了拍韦恩的后背，“吃点薯条哥们儿，不然我吃完就没你的份儿了。”&lt;/p&gt;
&lt;p&gt;韦恩和里卡多的一拍即合有些出乎文文的预料，似乎是里卡多公司正在使用的软件和韦恩的开发有些关联，对此文文并不了解。她有一搭没一搭地和丽贝卡聊着一些无关痛痒的话题。过了一会儿，丽贝卡去了卫生间，回来时则加入了其他人的讨论，而里卡多和韦恩不知什么时候已经聊到了音乐。等文文有些气恼地反应过来时，她发现自己已经吃完了一整蓝薯条。她坐起来一些然后把一只手放到韦恩肩膀上。&lt;/p&gt;
&lt;p&gt;“哦，嗨。”韦恩回头，看到是文文。&lt;/p&gt;
&lt;p&gt;里卡多还在说话，自然地仿若从未见过文文。&lt;/p&gt;
&lt;p&gt;“你可能还有些人没见到，”文文说，“而且现在已经很晚了。”&lt;/p&gt;
&lt;p&gt;韦恩似乎意识到了文文有些情绪，但他可能并没有重视。&lt;/p&gt;
&lt;p&gt;“好，我们去见见他们。”他像是在哄孩子一般。&lt;/p&gt;
&lt;p&gt;大家都很喜欢韦恩，他们说下次韦恩来的时候要给他一场欢迎晚宴。韦恩则拍胸脯保证要给他们做拿手的铁板烧。文文并不知道什么铁板烧，她甚至不知道韦恩会烧饭。&lt;/p&gt;
&lt;p&gt;很快韦恩又和托马斯聊了起来，托马斯正滔滔不绝地说着自己要梳理艾克符号文集。文文拽了拽韦恩的手，说他们该走了。&lt;/p&gt;
&lt;p&gt;“她是领导，”韦恩做出投降的手势。&lt;/p&gt;
&lt;p&gt;“随你怎么说。”文文说。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;对于韦恩在罗马的最后一天，他们梳理了一个单子，写满了最后想做的事儿。他们打算先不考虑所有要买票的景点，但是决定要早起，赶在高峰前去看斗兽场。文文推荐了圣比尔托，可以看米开朗基罗的带角摩西雕像。她在地图上示意他们会到蒙蒂区，看一段独特的街景。韦恩建议最后一晚可以以特雷维广场收尾。&lt;/p&gt;
&lt;p&gt;“这不是那个有名的喷泉吗？”&lt;/p&gt;
&lt;p&gt;“但是那边人太多了，”文文说，“我们可能甚至找不到地方吃饭。”&lt;/p&gt;
&lt;p&gt;“那我们可以回家吃，”韦恩建议，“我下厨。”&lt;/p&gt;
&lt;p&gt;“这听起来很不错。”文文说。她起身跨坐到韦恩腿上，和他面对面。纵然他的匆忙和她的怨念仍在彼此拉扯着，但他们都能感受到冲突在逐渐淡化，如果韦恩能多留一阵子他们可能真的调整到一个完美的节律上。&lt;/p&gt;
&lt;p&gt;“或许我们也可以干脆不吃晚饭。”文文看着韦恩的眼睛。&lt;/p&gt;
&lt;p&gt;韦恩似乎在考虑，然后嗯了一下。文文想，如果韦恩能能再多待一阵子，在他们熟悉对方后，或许他会逐步打破自己的矜持。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;对于韦恩和文文来说，一起打发一天的时间根本不能算任务，他们快活地完成了清单上的一个又一个条目，甚至还去后街逛了一大圈。在蒙蒂街，文文正在看一条鲜艳的宝石项链时，韦恩问是否要帮她买下来。她漫不经心地看着，没有说实际上她并不是特别喜欢这条项链。走出商店前她带上了这条项链，韦恩说她戴这个很好看。&lt;/p&gt;
&lt;p&gt;他们为晚餐购买了红酒、蘑菇和米饭，然后打车到特莱维喷泉，他们觉得看一看人潮涌动中的喷泉似乎也很有趣。&lt;/p&gt;
&lt;p&gt;“来吃最后一杯意式冰激凌。”韦恩说。&lt;/p&gt;
&lt;p&gt;“这可能是全罗马最不适合吃冰激凌的地方。”&lt;/p&gt;
&lt;p&gt;“总比我回家再吃要强吧。”&lt;/p&gt;
&lt;p&gt;在街边，他们在一家闪着花哨灯牌的冰激凌店前开始排队。&lt;/p&gt;
&lt;p&gt;“这是专门宰游客的。”文文说，“店员都不是意大利人。”&lt;/p&gt;
&lt;p&gt;“都排上队了就别说了，看把你精明的，机灵鬼。”韦恩说，“我想尝泡泡糖味的。”&lt;/p&gt;
&lt;p&gt;“你能不能不小心错过明天的航班啊？”文文说，“这样我们想吃多少冰激凌就吃多少。”&lt;/p&gt;
&lt;p&gt;韦恩把她搂到怀里，文文脖颈处感受到韦恩的鼻息。&lt;/p&gt;
&lt;p&gt;“我的天哪！”韦恩说。&lt;/p&gt;
&lt;p&gt;“嗯？什么东西？”&lt;/p&gt;
&lt;p&gt;“难以置信，”里奥轻轻放开文文，“那个是我在飞机上碰到的那位女士。”&lt;/p&gt;
&lt;p&gt;她正站在队伍的最后面，穿着一件鲜艳的红色连衣裙。她独自一人，露出的胳膊在冷风里有些发抖。她扯着微笑，时而自言自语，装作一个人玩得很开心的样子。&lt;/p&gt;
&lt;p&gt;文文的第一反应是在她认出韦恩前赶紧转过去，但是韦恩已经举起胳膊招呼起来，那个女人走到他们这边。&lt;/p&gt;
&lt;p&gt;“这是我在飞机上认识的朋友，”韦恩介绍着彼此，“这是文文。”&lt;/p&gt;
&lt;p&gt;女人的名字叫珍妮特。&lt;/p&gt;
&lt;p&gt;“你住在这附近吗？”韦恩问。&lt;/p&gt;
&lt;p&gt;“额，差不多，”女人左支右绌，来回翻动着手掌，“我的意思是，不是很远。”&lt;/p&gt;
&lt;p&gt;她说她下午经常会来这边犒劳一下自己。&lt;/p&gt;
&lt;p&gt;“让自己开心开心，挺好的对吧？”她笑着说。文文觉得有些别扭。&lt;/p&gt;
&lt;p&gt;轮到他们了，店员催促着他们，并没有给他们仔细尝试口味的机会。文文重复道这是个游客陷阱。她要了一杯开心果口味的，韦恩是牛奶巧克力，珍妮特要了一杯混合口味的，草莓、榛子和焦糖，还放了一块威化饼干。点单时她说的英语。&lt;/p&gt;
&lt;p&gt;“我来买单。”韦恩打开了钱包。&lt;/p&gt;
&lt;p&gt;“你太贴心了，”珍妮特看向文文，“他真的太体贴了，不是吗？”&lt;/p&gt;
&lt;p&gt;文文礼貌地微笑。&lt;/p&gt;
&lt;p&gt;“真美好啊。”珍妮特说。然后他们一同走到街的尽头。&lt;/p&gt;
&lt;p&gt;“嗯&lt;sub&gt;&lt;/sub&gt;，总之，今天很高兴见到你。”文文以女主人的姿态说道。她知道这样有些唐突，但她不想再一同走下去了。他们挥手作别。当珍妮特走远，文文告诉韦恩她是对的。&lt;/p&gt;
&lt;p&gt;“你什么是对的？”&lt;/p&gt;
&lt;p&gt;“关于她是个彻头彻尾的骗子。”&lt;/p&gt;
&lt;p&gt;“啊？”&lt;/p&gt;
&lt;p&gt;“她很显然不可能住在罗马，她甚至不会点冰激凌。”&lt;/p&gt;
&lt;p&gt;“她当时确实看起来有些茫然。”韦恩承认。&lt;/p&gt;
&lt;p&gt;“我是说，谁会每天下午都去那种地方买冰激凌？”&lt;/p&gt;
&lt;p&gt;“机灵鬼开始了。”韦恩调笑到。&lt;/p&gt;
&lt;p&gt;“而且，她怎么看也不可能是个画家。”&lt;/p&gt;
&lt;p&gt;“机灵鬼反击了。”&lt;/p&gt;
&lt;p&gt;“认真点，”文文声音大起来，“我是在分析情况。”&lt;/p&gt;
&lt;p&gt;“那你想分析出什么？嗯？”他也不再说俏皮话了。&lt;/p&gt;
&lt;p&gt;“分析出，你！被！骗！了！”&lt;/p&gt;
&lt;p&gt;“这有点过分了，”韦恩说，“她可能只是稍微夸大了一些事情。”&lt;/p&gt;
&lt;p&gt;“她编造了一个完全不同的身份！这是个很危险的信号！”文文几乎是喊的。&lt;/p&gt;
&lt;p&gt;“但是你刚才也看到了，她并没有做什么害人的事儿。”韦恩皱起眉头。&lt;/p&gt;
&lt;p&gt;“你怎么能帮一个满口谎言的陌生人说话，还因为我指出了事实就指责我？”&lt;/p&gt;
&lt;p&gt;“你怎么回事儿？这哪里值得生气了？”韦恩说。&lt;/p&gt;
&lt;p&gt;“因为你天真到幼稚，固执的天真。”&lt;/p&gt;
&lt;p&gt;“但是无可否认我切实听她这么说的。”&lt;/p&gt;
&lt;p&gt;“那你觉得她为什么唯独选你做听众？”&lt;/p&gt;
&lt;p&gt;“她说我看起来很和善。”&lt;/p&gt;
&lt;p&gt;“是啊，你还真幸运。”文文觉得生气，但又觉得很可笑。&lt;/p&gt;
&lt;p&gt;“这都怎么回事儿？”韦恩说，“我们情绪有些失控了。最后一个晚上我们好好过吧。”&lt;/p&gt;
&lt;p&gt;“你还真是个烂好人。”文文说，“除了我你对谁都这么好。”&lt;/p&gt;
&lt;p&gt;“你这么说的话怕是就有些偏颇了。”&lt;/p&gt;
&lt;p&gt;“你那么同情飞机上那个疯女人，和她聊了好几个小时；你还承诺要为刚认识的朋友烧饭，你花了一整个晚上听他们讲那些毫无意义的事情甚至没和我说一句话！”&lt;/p&gt;
&lt;p&gt;文文觉得自己似乎说的有点过了。&lt;/p&gt;
&lt;p&gt;“你是说酒吧那晚上吗？”韦恩说，“我只是想给你的朋友们留个好印象。”&lt;/p&gt;
&lt;p&gt;“是啊是啊，”文文说，“你努力地在给每一个人留好印象。”&lt;/p&gt;
&lt;p&gt;他们站在万神殿前，周围有些冷清。&lt;/p&gt;
&lt;p&gt;“这儿还挺好看的。”韦恩说。&lt;/p&gt;
&lt;p&gt;他就是这样，文文想，想扯开话题。&lt;/p&gt;
&lt;p&gt;“你应该还记得那个叫里卡多的吧？他其实对我有意思，而你一整晚都在和他聊天。”&lt;/p&gt;
&lt;p&gt;“我并不知道。”韦恩说。&lt;/p&gt;
&lt;p&gt;“就算你知道你也不会在意的！”&lt;/p&gt;
&lt;p&gt;“强词夺理。”&lt;/p&gt;
&lt;p&gt;“你会更关心他是不是对你有个好印象。”&lt;/p&gt;
&lt;p&gt;韦恩转过头去面向大楼，文文此刻很有抓过他肩膀让他再次看向自己的冲动。&lt;/p&gt;
&lt;p&gt;“如果我告诉你我和里卡多发生过什么呢？”&lt;/p&gt;
&lt;p&gt;“那时你的自由，你的选择。”&lt;/p&gt;
&lt;p&gt;“闭嘴！”文文说，“停！”她吼起来，“能不能别再让我觉得自己就像不存在一样？”&lt;/p&gt;
&lt;p&gt;韦恩没说什么了，又或许他在低声咕哝着什么。&lt;/p&gt;
&lt;p&gt;“我或许应该告诉你我和他睡了。”话虽然出口如此，文文觉得自己还是有解释的余地的，毕竟自己只是想让他为了自己而生气。&lt;/p&gt;
&lt;p&gt;沉默了片刻，韦恩问，“为什么要告诉我？”&lt;/p&gt;
&lt;p&gt;文文有些震惊，震惊于他只是回问了这样一个问题，也震惊于这个问题本身。他们继续向前走着。无声。&lt;/p&gt;
&lt;p&gt;“不好意思。”文文说，“我刚才太生气了，只是气话，我和他其实什么也没有。”&lt;/p&gt;
&lt;p&gt;“O.K.”韦恩说，一字一顿。他看起来很疲惫。文文依然诧异于他后续什么也没有问。她毫无根据的想着或许这是他的一种体贴。&lt;/p&gt;
&lt;p&gt;他们回家，做了炒饭吃，然后做爱。韦恩要打包他的行李箱。&lt;/p&gt;
&lt;p&gt;他的飞机是早上的，先到伦敦转机，然后再到加利福尼亚。他要在天刚蒙蒙亮的时候就出发。他说她就不用起来送她了，没必要。&lt;/p&gt;
&lt;p&gt;“别傻了，”文文说，“我肯定要送送你。”&lt;/p&gt;
&lt;p&gt;早上，韦恩起来淋雨、穿衣。文文进厨房的时候看到他拿着一张便签纸在写什么。他把纸叠起来，压在花瓶下面。&lt;/p&gt;
&lt;p&gt;瓶中的康乃馨已经干了。&lt;/p&gt;
&lt;p&gt;韦恩仍然说他不用吃早饭，他去机场吃点就可以了。而且，他说他的出租车马上就到了。他们一起下楼去。&lt;/p&gt;
&lt;p&gt;“我在这里度过了美好的一段时光。”他们在楼梯上拥抱了一下。&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;回到公寓，文文泡了一杯茶然后坐下。她把这段日子发生的种种在心里一遍遍梳理，每一次都越发觉得其美好而非扫兴。&lt;/p&gt;
&lt;p&gt;花瓶下的纸条里，依然是感叹这次美好的到访，他说他盼望着下一次来访。他在”如果”一词下打了双横线，尽管不知道具体含义是什么。看似好像有些讽刺。&lt;/p&gt;
&lt;p&gt;他没有道歉，确实他也没什么需要道歉的。&lt;/p&gt;
&lt;p&gt;过去的几天里，文文一直在想一些事情，断断续续。她发现自己现在已经没有机会去询问：韦恩那天是怎么回复珍妮特的故事的？他在飞机上到底和她又说了些什么？文文觉得他当时肯定不会去质疑那位老妇人，他不是喜欢试探别人的人。他或许就那样静静的坐在那听珍妮特诉说，安静的仿若根本没听进去。&lt;/p&gt;
&lt;p&gt;她有时，感觉，或许有些理解珍妮特了。一个孤单的老女人，不得不夸大、编造一个离奇的故事，只为了让一位友善的年轻人多陪自己一待会儿。&lt;/p&gt;



 </description>
<category>小说</category>
<category>转载/翻译</category>
<guid>https://midstream.cn/posts/LongDistance/</guid>
<pubDate>Wed, 29 Jun 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>新冠毒株的变种</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/新冠毒株的变种/</link>
<description> 






&lt;p&gt;近年来，新冠疫情席卷全球，给全世界各国都带来了损失，尤其是最近两年来出现的变种如德尔塔(Delta)，奥秘克绒(Omicron)等变种毒株，拥有极高的烈性或极强的传染性，更需要我们多加防范。如今，在这疫情之中，多了解一些有关病毒的知识便显得尤为重要，小编在此给大家介绍一些已经存在但因为种种原因不被大众所认识的毒株种类。&lt;/p&gt;
&lt;p&gt;艾塔(Eta)：从其希腊字母命名顺位较靠前便可以看出，这种变异毒株在较早的时候就已经出现了，而其之所以不被大众所熟知则是因为其传染性较弱。这种毒株的感染者多是抵抗力较弱的老人（目前未发现幼年感染者），此种类病毒对震荡敏感，在被感染者摔倒时会从其口鼻处以气溶胶的形式散出，感染周围的人。经卫生组织观察，虽然群众对这种病毒了解不多，但防疫意识颇为到位，每当有易感者摔倒时，周围的行人都会自发迅速地离开危险区域。因此，这种毒株少有感染他人的例子，危害较小。&lt;/p&gt;
&lt;p&gt;西塔(Theta)：西塔毒株最初被发现于食物内，但是奇怪的是，直接食用并不会被感染，只有长期与其接触或保持较近的距离才有被感染的风险。与新冠病毒的其他变种不同，西塔毒株的易感人群为中年妇女，现有的确诊者均为食堂的工作人员。经调查发现，西塔变种对于低频振动有着极低的抗性，肢体的抖动可以有效的预防西塔病毒的传播。幸运的是，绝大多数在食堂就职的人员均有着在工作时不断抖动上肢的习惯，因此西塔毒株已处于灭绝边缘。&lt;/p&gt;
&lt;p&gt;兰布达(Lambda): 作为一个常出现在数学公式中的希腊字母，兰布达变种的感染者也多为高校学生。此种毒株的传播机制尚不明确，目前为止发现的零号病人均有着高强度观看日本动漫的生活习惯。从病毒的结构入手，专家推测这种毒株有着较强的传染性，但是目前为止所有的感染者均为零号病人，没有发现任何传播迹象。专家给出的解释是，目前所有的感染者都是二刺螈，他们的日常生活与居家隔离无异，不用担心病毒会传播。&lt;/p&gt;
&lt;p&gt;西格玛(Sigma)：这是一种非常危险的新冠变异毒株，致死率高传播性强，截至目前为止仅被发现于新生产出的显卡上。根据国际卫生组织的报告，西格玛毒株会在新出厂的显卡上滞留很久，但会因显卡的高强度使用而死亡。在西格玛毒株刚被发现时，卫生组织曾非常担心近期购买过全新显卡的大批民众会被感染，但至今没有任何一例新病例被发现。&lt;/p&gt;
&lt;p&gt;欧米茄(Omega)：易感人群：态度温和的驾校教练。已灭绝。&lt;/p&gt;



 </description>
<category>抽象艺术</category>
<guid>https://midstream.cn/posts/新冠毒株的变种/</guid>
<pubDate>Wed, 01 Jun 2022 16:00:00 GMT</pubDate>
</item>
<item>
<title>逐蛋者</title>
<dc:creator>Midstream </dc:creator>
<link>https://midstream.cn/posts/逐蛋者/</link>
<description/>
<category>抽象艺术</category>
<category>小说</category>
<guid>https://midstream.cn/posts/逐蛋者/</guid>
<pubDate>Sun, 24 Apr 2022 16:00:00 GMT</pubDate>
</item>
</channel>
</rss>