AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
calc22 — 分号赋值链式修复、TOKEN_ASSIGN1. 概述本次迭代修复了a5;b6;ab分号链式赋值失败的 Bug并新增TOKEN_ASSIGN运算符 token使表达式求值器内部支持赋值操作。Bug 表现calc a5;b6;ab error: undefined variable b修复后calc a5;b6;ab a 5 b 6 5 6 11 result: 112. 变更清单文件操作说明parse.h编辑TokenType 新增TOKEN_ASSIGNparse.c编辑switch 增加case :update_expect/token_name同步更新eval.c编辑parse_factor中标识符后检测TOKEN_ASSIGN解析 RHS 并调用sym_setmain.c编辑is_assignment中使用TOKEN_ASSIGNparse_and_eval和repl中简单跳过is_assignment路径由eval_exprs处理3. Bug 根因分析3.1 问题路径输入a5;b6;ab在 REPL 中的执行路径is_assignment(a5;b6;ab) → 检测到第一个 var_nameaRHS5;b6;ab eval_exprs(5;b6;ab) → 解析 5 → OK → 遇到 ; → 继续 → 解析 b6 → 不是合法 token (TOKEN_ERROR) → parse_factor 未识别为赋值走变量查找 → sym_get(b) 返回 1 → 打印 undefined variable b3.2 三个叠加问题#问题位置1不是合法 token被解析为TOKEN_ERRORparse.c2parse_factor中标识符后遇不会识别为赋值eval.c3is_assignment只处理输入中第一个eval_exprs内部的分号后赋值不受理main.ceval.c4. 修复方案4.1 parse.h — 新增 TOKEN_ASSIGNTOKEN_ASSIGN,/** */4.2 parse.c — 识别为合法 tokencase:tok.typeTOKEN_ASSIGN;break;4.3 eval.c — parse_factor 中处理赋值在parse_factor的TOKEN_IDENTIFIER分支中检测TOKEN_ASSIGNif(next.typeTOKEN_ASSIGN){parse_consume();longdoublevalparse_expr();if(eval_error)return0.0;sym_set(t.data.name,val);if(print_steps)printf( %s %Lg\n,t.data.name,val);returnval;}4.4 main.c — 简单由 eval_exprs 处理is_assignment中使用TOKEN_ASSIGNif(*p*(p1)!){*opTOKEN_ASSIGN;return1;}parse_and_eval和repl中仅对复合赋值-等走is_assignment路径简单由eval_exprs统一处理。5. 测试验证$maketestcalc — 测试套件124passed,0failed,124total$ ./build/calca5;b6;ab11$printfa5;b6;ab\nexit\n|./build/calc calca5b65611result:11

相关新闻

ex.skill:让逝去的爱情重获数字生命,用AI复刻前任聊天风格的终极指南

ex.skill:让逝去的爱情重获数字生命,用AI复刻前任聊天风格的终极指南

ex.skill:让逝去的爱情重获数字生命,用AI复刻前任聊天风格的终极指南 【免费下载链接】ex-skill 致你忘不掉的那个TA,你们干大模型都是码圣 Its giving rebirth era. Welcome to Digital Life 1.0. 🫶 项目地址: https://gitcod…

2026/7/28 8:55:12 阅读更多 →
为什么ZK Bug Tracker是区块链安全研究者的必备数据库?

为什么ZK Bug Tracker是区块链安全研究者的必备数据库?

为什么ZK Bug Tracker是区块链安全研究者的必备数据库? 【免费下载链接】zk-bug-tracker A community-maintained collection of bugs, vulnerabilities, and exploits in apps using ZK crypto. 项目地址: https://gitcode.com/gh_mirrors/zk/zk-bug-tracker …

2026/7/28 8:55:12 阅读更多 →
如何在30分钟内启动CIFAR-ZOO训练?从环境配置到第一条命令的完整教程

如何在30分钟内启动CIFAR-ZOO训练?从环境配置到第一条命令的完整教程

如何在30分钟内启动CIFAR-ZOO训练?从环境配置到第一条命令的完整教程 【免费下载链接】CIFAR-ZOO 项目地址: https://gitcode.com/gh_mirrors/ci/CIFAR-ZOO CIFAR-ZOO是一个专注于CIFAR数据集的深度学习模型训练框架,提供了丰富的预配置模型和实…

2026/7/28 8:55:12 阅读更多 →

最新新闻

Cocos Creator项目目录结构详解:从核心文件夹到团队协作规范

Cocos Creator项目目录结构详解:从核心文件夹到团队协作规范

1. 项目概述:为什么目录结构是项目的基石 刚接触Cocos Creator,尤其是从其他引擎(比如Unity)或者前端框架(比如Vue)转过来的朋友,打开项目文件夹的第一眼,可能会有点懵。assets、set…

2026/7/28 9:14:21 阅读更多 →
DIY低成本自动旋转拍摄转台:用玩具电机与LM317实现静物摄影360度展示

DIY低成本自动旋转拍摄转台:用玩具电机与LM317实现静物摄影360度展示

1. 项目概述与核心价值最近在捣鼓一些产品静物拍摄,发现一个挺烦人的事儿:想拍个360度展示视频,要么得手动一点点转,要么就得花大几百甚至上千去买个专业的电动转台。手动转吧,画面卡顿不流畅;买专业的吧&a…

2026/7/28 9:14:21 阅读更多 →
Arduino舵机控制可视化:基于TFT彩屏的实时监控与交互系统

Arduino舵机控制可视化:基于TFT彩屏的实时监控与交互系统

1. 项目缘起:从“动起来”到“看得见”的交互升级很多朋友玩Arduino都是从控制舵机开始的,让一个机械臂动起来,或者让小车转向,那种“代码驱动物理世界”的成就感是无可替代的。但玩久了你会发现一个问题:调试过程太“…

2026/7/28 9:14:21 阅读更多 →
Arduino温控摇头风扇:从传感器到舵机的自动化实践

Arduino温控摇头风扇:从传感器到舵机的自动化实践

1. 项目概述:一个会“思考”的智能风扇最近天气忽冷忽热,坐在电脑前总感觉要么闷热要么凉飕飕的,手动调节风扇又嫌麻烦。于是,我琢磨着能不能做一个能自己“感知”温度、并“摇头”把风送到需要地方的小风扇。这个想法听起来有点意…

2026/7/28 9:14:21 阅读更多 →
jellyfin-ffmpeg Docker部署全攻略:3分钟搭建媒体转码服务

jellyfin-ffmpeg Docker部署全攻略:3分钟搭建媒体转码服务

jellyfin-ffmpeg Docker部署全攻略:3分钟搭建媒体转码服务 【免费下载链接】jellyfin-ffmpeg FFmpeg for Jellyfin with custom extensions and enhancements 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-ffmpeg jellyfin-ffmpeg是为Jellyfin媒体…

2026/7/28 9:14:21 阅读更多 →
电感在高速电路中的非理想特性分析与工程应对策略

电感在高速电路中的非理想特性分析与工程应对策略

1. 项目概述:当电感不再“安分”在电子电路的世界里,电感常常被看作一个“老实人”。在直流或低频电路中,它表现得像个短路的导线;在需要滤波、储能时,它又默默无闻地工作。然而,一旦电路的工作频率进入高速…

2026/7/28 9:13:21 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻