lua# lua5.1.4 源码文件作用一览

写了个脚本列出lua源码C文件头部的注释,作为我有一搭没一搭以Lua为对象学习编译原理的开端。

lua5.1.4全部的源码有35个C文件,17216行代码。每个文件基本的功能如下

./output_lua_sources_comments.sh ~/resources/sources/lua/src                                                                                  myarch/others (master ⚡) mattPC
     1    52    lctype.c       'ctype' functions for Lua
     2    67    linit.c        Initialization of libraries for lua.c and other clients
     3    76    lzio.c         Buffered streams
     4    77    ltm.c          Tag methods
     5    99    lmem.c         Interface to Memory Manager
     6    107   lopcodes.c     Opcodes for Lua virtual machine
     7    155   lcorolib.c     Coroutine Library
     8    161   lfunc.c        Auxiliary functions to manipulate prototypes and closures
     9    173   ldump.c        save precompiled Lua chunks
    10    185   lstring.c      String table (keeps all strings handled by Lua)
    11    209   lbitlib.c      Standard library for bitwise operations
    12    258   lundump.c      load precompiled Lua chunks
    13    283   lmathlib.c     Standard mathematical library
    14    283   ltablib.c      Library for Table Manipulation
    15    289   lobject.c      Some generic functions over Lua objects
    16    322   lstate.c       Global State
    17    323   loslib.c       Standard Operating System library
    18    398   ldblib.c       Interface from Lua to its debug API
    19    432   luac.c         Lua compiler (saves bytecodes to files; also list bytecodes)
    20    459   lbaselib.c     Basic library
    21    496   lua.c          Lua stand-alone interpreter
    22    527   llex.c         Lexical Analyzer
    23    580   ldebug.c       Debug Interface
    24    588   ltable.c       Lua tables (hash)
    25    657   liolib.c       Standard I/O (and system) library
    26    668   ldo.c          Stack and Call structure of Lua
    27    725   loadlib.c      Dynamic library loader for Lua
    28    766   loadlib_rel.c  Dynamic library loader for Lua
    29    868   lvm.c          Lua virtual machine
    30    882   lcode.c        Code generator for Lua
    31    958   lauxlib.c      Auxiliary functions for building Lua libraries
    32    972   lstrlib.c      Standard library for string operations and pattern-matching
    33    1205  lgc.c          Garbage Collector
    34    1281  lapi.c         Lua API
    35    1635  lparser.c      Lua Parser
----------------------------------------------------------------------------------------
        17216

以下是bash脚本,内容也算丰富。

 1 [[ "$#" == 0 ]] &&  {
 2     echo "usage: $0 path"
 3     exit 1
 4 }
 5 
 6 src_dir="$1"
 7 pos=$((${#src_dir}+2))
 8 
 9 outline ()
10 {
11     printf "%-6d%-15s%s\n" "$1" "$2" "$3" 
12 }
13 
14 {
15 for file in `ls -1 "$src_dir""/*.c"` ; do
16     comment=`sed -n "3p" $file | cut -d" " -f2-`
17     filename=`basename $file`
18     lines=`wc -l $file | cut -d" " -f1`
19     outline "$lines" "$filename" "$comment" 
20 done
21 } | sort -nk 1| cat  -b  | awk  '{ if(l<length($0)){ l=length($0)}; s+=$2; print $0}
22     END { while(l--){ sp=sp"-"} print sp ;printf("%8s%-6d\n","",s)}'

 

 

 

 

转载于:https://www.cnblogs.com/mattmonkey/archive/2012/12/08/2808502.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带有Hibernate OGM的NoSQL –第一部分:持久化您的第一个实体

Hibernate OGM的第一个最终版本已经发布 &#xff0c;团队从发布狂潮中恢复了一些。 因此&#xff0c;他们考虑建立一系列教程式博客&#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 感谢Gunnar Morling&#xff08; gunnarmorling &#xff09;创建了本教程。 介绍 不…

为自己写程序之JavsScript代码段测试器

JavaScript的测试&#xff0c;通常是在Firefox的firebug插件中测试的。不过有时只是测试几行代码都要写一个html&#xff0c;再打开浏览器测试运行结果&#xff0c;感觉并不是很方便。 今天花了点时间做了一个简易的JS片段测试器。其实这主要是看了IronJs开源项目以后&#xff…

sizeof和strlen的区别(其中涉及NUL的讲解)

本文是自己结合平时所学的知识&#xff0c;对sizeof和strlen的区别进行了总结&#xff0c;如有不对的地方还请批评指证&#xff0c;共同进步&#xff01;&#xff01;&#xff01; 一、从C语言的定义上来讲 1、sizeof是关键字&#xff0c;而strlen是包含在string.h头文件中的一…

我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问

与以前的版本相比&#xff0c;JBoss AS7的目标之一是使其在默认情况下更加安全。 受此目标直接影响的领域之一是&#xff0c;您不再期望服务器在端口上公开某些服务&#xff0c;而无需任何身份验证/授权就可以访问它。 请记住&#xff0c;在以前的JBoss AS版本中&#xff0c;只…

js判断对象类型

1.typeof typeof只能判断区分基本类型&#xff0c;number、string、boolean、undefined和object,function&#xff1b; typeof 0; //number; typeof true; //boolean; typeof undefined; //undefined; typeof "hello world" //string; typeof function(){}; …

我喜欢的类型

http://v.qq.com/cover/h/hfd581s2y9unvy8.html?vidp0011ocge8q 转载于:https://www.cnblogs.com/sliz/archive/2012/12/09/2809742.html

使用WildFly和Java EE 7映像与Docker提供者一起流浪

什么是无业游民&#xff1f; Vagrant是创建虚拟开发环境的简化且可移植的方式。 它可与多种虚拟化软件一起使用&#xff0c;例如VirtualBox&#xff0c;VMWare&#xff0c;AWS等。 它还可以与多种配置软件一起使用&#xff0c;例如Ansible&#xff0c;Chef&#xff0c;Puppet或…

Apache Nutch 1.6 发布

Apache Nutch 1.6 发布&#xff0c;该版本修复了超过 20 个 bug&#xff0c;新功能包括&#xff1a;新的 HostNormalizer&#xff0c;可通过 MIME-type 和 Indexer API 的功能增强来动态设置 fetchInterval &#xff0c;更新 Tika 到 1.2 版本&#xff0c;更新 Autimaton 到 1.…

EE Servlet 3:如何在Web应用程序中设置后端服务

在Web应用程序中&#xff0c;提供用户界面&#xff08;UI&#xff09;通常只是工作的一半。 许多应用程序都有后端服务支持的要求。 后端服务的一些示例是调度程序进程&#xff08;批处理&#xff09;&#xff0c;侦听队列并在消息进入时作出响应&#xff0c;或者是简单的事情&…

es6解构赋值

解构赋值语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中。 数组解构赋值&#xff1a; {let a,b,rest;[a,b][1,2];console.log(a,b); //1 2 } {let a,b,rest;[a,b,...rest][1,2,3,4,5]; console.log(a,b,rest); //1 2 [ 3, 4, 5 ]…

Jquery插件之ajaxForm

如今ajax满天飞&#xff0c;作为重点的form自然也受到照顾。 其实&#xff0c;我们在平常使用Jquery异步提交表单&#xff0c;一般是在submit()中&#xff0c;使用$.ajax进行。比如&#xff1a; $(function(){$(#myForm).submit(function(){$.ajax({url:"/WebTest/test/te…

休眠锁定模式–乐观锁定模式如何工作

显式乐观锁定 在上一篇文章中 &#xff0c;我介绍了Java持久性锁定的基本概念。 隐式锁定机制可防止丢失更新 &#xff0c;它适用于我们可以主动修改的实体。 虽然隐式乐观锁定是一种广泛使用的技术&#xff0c;但是很少有人了解显式乐观锁定模式的内部工作原理。 当锁定的实…

CSS中可继承的属性

不可继承的属性太多了不要背&#xff0c;记住可以继承的属性有哪些就行了。可以继承的属性很少&#xff0c;只有颜色&#xff0c;文字&#xff0c;字体间距行高对齐方式&#xff0c;和列表的样式可以继承。这么来记很轻松的呀&#xff01;不要被下边的吓到了哦~所有元素可继承&…

如何在JMeter中执行客户端Web性能测试?

在本文中&#xff0c;我们将看到如何使用Jmeter插件进行客户端性能测试。 我将使用jmeter webdriver插件。 在开始本主题之前&#xff0c;请从我以前的文章中获得有关客户端性能测试的一些基本信息。 因此&#xff0c;让我们开始吧&#xff1a; 安装 通过这篇文章之后的链接&…

inline-block的兼容性问题

我们都知道在IE6 7 中用*display&#xff1a;block&#xff1b;*zoom&#xff1a;1&#xff1b;可以解决 inline-block 的兼容问题 很多人认为IE6 7 是不支持inline-block的&#xff0c;严格来说应该是&#xff1a;IE6 7 对 inline-block 支持的不够完全 这个要分两种情况来说&…

用Java读取/写入压缩和非压缩文件

这篇文章的主要原因是尝试不重复自己&#xff08; DRY &#xff09;&#xff0c;因为通常&#xff0c;我会遇到读写压缩和非压缩文件&#xff08;主要是JSON和CSV&#xff09;的递归需求。 首先让我们看看如何读取文本文件。 注意我正在使用&#xff08;相对较小的&#xff09…

Gradle入门:创建多项目构建

尽管我们只能使用一个模块来创建一个工作的应用程序&#xff0c;但是有时将我们的应用程序划分为多个较小的模块是比较明智​​的。 因为这是一个相当普遍的用例&#xff0c;所以每个自重的构建工具都必须支持它&#xff0c;Gradle也不例外。 如果Gradle项目具有多个模块&…

float

1.float元素有继承属性&#xff1a;inherit. 2. span{width:100px;height:100px;background:red; } 文档中不显示&#xff0c;因为span为块状元素&#xff0c;不能设置宽和高。 3. span{width:100px;height:100px;background:red;float&#xff1a;left&#xff1b; } 此时在文…

[转载]Buffon投针实验:究竟为什么是pi?

Buffon投针实验&#xff1a;究竟为什么是pi&#xff1f; Brain Storm | 2009-11-06 20:16| 57 Comments | 本文内容遵从CC版权协议 转载请注明出自matrix67.com数学学习真正悲哀的就是&#xff0c;记住了某个神奇而伟大的定理&#xff0c;看懂了其最严密的推导过程&#xff0c;…

EE Servlet 3:使用会话和过滤器开发用户登录

我在上一篇文章中介绍了Application类&#xff0c;您可以在其中设置后端服务。 我添加的一个示例服务是UserService 。 该服务将加载包含用户名和密码集的Java用户属性文件&#xff1b; 稍后将用于对用户进行身份验证以登录到Web应用程序。 现在&#xff0c;我将展示如何使用标…