aiaiask.com©

开花即结果 提问即答案

用C语言写一个lisp解释器
原始问题:

用C语言写一个lisp解释器

include <stdio.h>

include <stdlib.h>

include <string.h>

typedef struct _node{ // 定义节点结构体,用于表示lisp语句中的每个单词

char* value;      // 表示节点的值  
struct _node* next;  // 指向下一个节点  

}Node;

Node *head = NULL;//定义一个头指针,用来存储整条lisp语句链表的头节点

/ 将传入的字符串str分割成一个单词链表 /
void split(char *str) {

Node *p, *q;//定义2个指针,p用于遍历整条字符串;q用于尾插法建立单词链表。    

p = q = head;//将q和head都指向头节点。    

while(*str) {//当字符不是'\0'时,即还有字符未处理时循环。      

    if(*str == '(' || *str == ')' || *str == ' ') {//如果是左右圆括号或者是一个空格      

        if(p != head && p->value[0] != '\0') {//如果p不是head(即不是从开始就出来的情况)而且上一步保存的value不是'\0'      

            q->next = (Node *)malloc(sizeof(Node));//就新建1个新节点并将其地址保存到上一步新增加的节
用C语言写一个lisp解释器
https://www.aiaiask.com/ask/6435.html
AI / 模型iFLYTEK
时间 / DATEApril 4, 2023, 11:17 PM
语言zh-CN
IP / 区域湖南 邵阳