写了个脚本列出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

lua# lua5.1.4 源码文件作用一览相关推荐

  1. Go 学习笔记(2)— 安装目录、工作区、源码文件和标准命令

    GOROOT: Go 语言安装根目录的路径,也就是 GO 语言的安装路径. GOPATH: 若干工作区目录的路径.是我们自己定义的工作空间.在 Go Module 模式之前非常重要,现在基本上用来存放 ...

  2. U-Boot 之三 U-Boot 源码文件解析及移植过程详解

      在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建说明 中我们说了要一步步搭建整个嵌入式 Linux 运行环境.我所使用的硬件平台及整个要搭建的嵌入式 Linux 环境见博文 ...

  3. IntelliJ IDEA for Mac 如何配置项目模块的源代码根目录_源码文件的根目录

    按下组合键 Command + ; 打开[项目结构]配置窗口:然后选择左侧菜单栏的[Modules]:然后在右侧的模块列表中,选择你要配置的模块:接着选择右侧界面中的[Sources]标签. 首先添加 ...

  4. U-Boot 之零 源码文件、启动阶段(TPL、SPL)、FALCON、设备树

      最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,在之前的博文 Linux 之八 完整嵌入式 Linux 环境.(交叉)编译工具链.CPU 体系架构.嵌入式系统构建工具 中详细介绍了嵌 ...

  5. opencv学习笔记—— opencv3 源码文件夹内容

    OpenCV 3 的源代码文件夹: 3rdparty/: 包含第三方库,如用视频解码用的 ffmpeg.jpg.png.tiff 等图片的解码库. apps/: 包含进行 Haar 分类器训练的工具, ...

  6. Android源码文件夹结构

    Android 2.2 |-- Makefile |-- bionic               (bionic C库) |-- bootable            (启动引导相关代码) |-- ...

  7. C#MUD英雄大作战二、乔峰篇(副源码文件连接)

    目录 开发环境: 编码 源码地址: 开发环境: 系统环境:Win10 开发工具:VS2019 语言:C# 项目:控制台应用(.NET Framework) 编码 英雄类:(更换namespace即可) ...

  8. C#MUD英雄大作战(副源码文件连接)

    目录 开发环境: 编码 源码地址: 开发环境: 系统环境:Win10 开发工具:VS2019 语言:C# 项目:控制台应用(.NET Framework) 编码 英雄类:(更换namespace即可) ...

  9. java源码文件丢恢复需要多少钱,上岸蚂蚁金服!

    京东Java研发岗一面(基础面,约1小时) 自我介绍,主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 @Autowired的实现原理 Bean的默认作用范围是什么?其他的作 ...

最新文章

  1. 再见,Teamviewer!这款国产轻量级远程桌面软件超牛逼!
  2. 2021年人工神经网络第三次作业-第二题:遗传算法与人工神经网络-参考答案
  3. python精通-干货|Python学习必须精通的几个模块
  4. 对比2个表mailbox_id字段的差集,然后做插入操作
  5. 判断一个字符串是否全部相同
  6. 应用指定显示到副屏_LED灯杆屏广泛应用逐渐成为智慧城市信息化的重要窗口
  7. GDB调试core文件样例(如何定位Segment fault)
  8. 【收集】几款浏览器兼容性测试工具
  9. 不用GAN、VAE,谷歌发明视频生成的扩散模型,实现新SOTA
  10. msql查询姓名不带r的员工姓名_java基础之MySQL多表查询2
  11. vue+elementUI+node实现登录模块--验证用户名是否正确
  12. nyoj936蚂蚁的难题(X)
  13. c++ 设计模式推荐书籍
  14. php redis令牌桶,php 基于redis使用令牌桶算法实现流量控制
  15. ESPHome 和 Home Assistant传感器之TMT6000 环境光握手
  16. 如何在Android TV 桌面添加自定义频道/节目
  17. python使用pillow生成纯透明png图片
  18. 从向量空间的角度来理解方程组有无解的问题
  19. mysql association_Mybatis的一对多(collection)和一对一(association)查询
  20. java就是我的幸福,我的幸福我的人生

热门文章

  1. LeetCode 268 缺失数字
  2. 计算机实现数论 奇偶排列问题
  3. 霍普分叉matlab程序,基于MATLAB_GUI的Kalman滤波程序
  4. C语言字符串输出函数puts()的作用是什么
  5. php伪静态后不能访问html,php伪静态后html不能访问怎么办
  6. python2048游戏代码_【Python】用Python实现2048小游戏(源代码,1.0版本)
  7. 1061 判断题(PAT乙级 C++)
  8. pat 乙级 1004 成绩排名(C++)
  9. 【渝粤教育】国家开放大学2018年春季 0149-21T现代汉语 参考试题
  10. 【渝粤题库】陕西师范大学200471 英汉翻译