SBCL 从REPL 中提取lisp代码
1, 在emacs C-x C-W 文件另存为保存所有REPL过程
由于 (load "foo.lisp")时只有定义语句可以正确执行, 执行语句不可正确被 (load "foo.lisp")解析执行
所以脚本写成了这个样子, 脚本名 parse_lisp_code.sh
#!/bin/bash
if [ -n "$1" ]; then
sed 's/CL-USER>//' $1 | expand -t 8 | egrep '^ *\(def|^ {8,}' >> "code_${1}"
else
echo "please input lisp file name"
fi
运行脚本 sh parse_lisp_code.sh cd.lisp
命令解释:
使用sed 删除提示符 CL-USER
lisp定义语句以(def 开头 或是 制表符开头, 如下
CL-USER> (defun dump-db ()$
^I (dolist (cd *db*)$
^I (format t "~{~a: ~10t~a~%~}~%" cd)))$
所以使用grep 过滤出每行开始n个空格后加(def或制表符的行,
但是发现grep 不能匹配制表符,
所以使用 expand -t 8 foo > bar 把制表符转化成8个空格
P.S. 定义出错的函数也会被提取出来
SBCL 从REPL 中提取lisp代码的更多相关文章
- 从jsTree演示代码中提取的在线文件查看
从jsTree演示代码中提取的在线文件查看 jsTree 请参考:https://www.jstree.com/ 效果如下: 代码下载:http://files.cnblogs.com/files/z ...
- VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版
http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...
- [数据科学] 从csv, xls文件中提取数据
在python语言中,用丰富的函数库来从文件中提取数据,这篇博客讲解怎么从csv, xls文件中得到想要的数据. 点击下载数据文件http://seanlahman.com/files/databas ...
- 如何使用免费PDF控件从PDF文档中提取文本和图片
如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...
- swfdump——从内存中提取swf的工具
刚刚整理代码时发现以前写的从进程的内存镜像中提取swf文件的工具,现在分享出来,希望能帮到有需要的朋友.这个小工具是命令行使用,没有界面,可以很方便的从指定进程中(比如浏览器,swf播放器等等),按s ...
- Oracle中如何判断字符串是否全为数字,以及从任意字符串中提取数字
本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个translate函数的小技巧,从任意字符串中提取数字(调用2次translate函数).这个办法是一个公司同事发现的,用起来很方便,但理解 ...
- 第一个lucene程序,把一个信息写入到索引库中、根据关键词把对象从索引库中提取出来、lucene读写过程分析
新建一个Java Project :LuceneTest 准备lucene的jar包,要加入的jar包至少有: 1)lucene-core-3.1.0.jar (核心包) 2) lucene- ...
- 论文系统Step1:从日志记录中提取特定信息
论文系统Step1:从日志记录中提取特定信息 前言 论文数据需要,需要实现从服务器日志中提取出用户的特定交互行为信息.日志内容如下: 自己需要获取"请求数据包一行的信息"及&quo ...
- 从输出日志中提取接口的入参和返回做为用例导入到excel中
1 背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2 工具 idea,notepad+ ...
随机推荐
- HttpClientUtil简介
使用HttpClient发送请求.接收响应. http协议可以说是现在Internet上面最重要,使用最多的协议之一了,越来越多的java应用需要使用http协议来访问网络资源,HttpClient ...
- EL表达式有无双引号的区别
最近做项目时发现原来对EL表达式理解太浅,通过一个springMVC项目,加深了对其的理解,下面总结一下,如发现有不对之处,请批评指正: 1.在单独的js文件中,EL表达式无效,如:var type= ...
- var关键字获取数据类型
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- Entity Framework 摘记
1.设置隔离级别 var transactionOptions = new System.Transactions.TransactionOptions(); transactionOptions.I ...
- 042. asp.net使用缓存来提高母版页的访问性能
Asp.Net缓存技术是一项非常重要的技术, 当一个页面被频繁的访问, 如果不使用缓存技术, 那么每访问一次就要回发一次服务器, 显然这样对服务器造成很大的负担, 所以, 可以在被频繁访问的页面中设置 ...
- python---IPy
Python第三方模块IPy,可完成高效的IP规划工作 #安装 #pip3 install IPy #最新版本V0.83 IP地址 网段的基本处理 >>>from IPy impor ...
- git基本用法说明(原创+验证)
关于文件状态 一般仓库中的文件可能存在于这4种状态: 1)Untracked files → 文件未被跟踪(A) 2)Untracked but no ...
- Codeforces Round #377 (Div. 2) D. Exams(二分答案)
D. Exams Problem Description: Vasiliy has an exam period which will continue for n days. He has to p ...
- 重写类的Equals以及重写Linq下的Distinct方法
当自定义一个类的时候,如果需要用到对比的功能,可以自己重写Equals方法,最整洁的方法是重写GetHashCode()方法. 但是,这个方法只适用于对象自身的对比(如if(a==b))以及字典下的C ...
- LAMP_01_Win下安装配置MySql
1.解压Mysql server到D盘配置环境变量MYSQL_HOME D:\J2EE\apache-ant-1.9.7PATH %MYSQL_HOME%\bin; 2 ...