No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
README.md
lexer.rb

README.md

Ruby Markdown

一个使用 Ruby 实现的 Markdown 编译器

解释器与编译器

解释器

解释器根据程序中的算法执行运算。简单来讲,它是一种用于执行程序的软件。如果执行的程序由虚拟机器语言或类似于机器语言的程序设计语言写成,这种软件也能称为虚拟机。

编译器

编译器能将某种语言写成的程序转换为另一种语言的程序。通常它会将原程序转换为机器语言。编译器转换程序的行为称为编译,转换前的程序称为源代码或源程序。如果编译器没有把源代码直接转换为机器语言,一般称为源代码转换器或源码转换器(source code translator)。

过去人们提到编译器时,首先会联想到费时的编译过程。不过由于编译后实际执行的是机器语言,因此执行速度很快。而对于解释器,人们通常认为它会在程序输入的同时立即执行,执行速度较慢。这就是两者的基本区别。现代的解释器内部常采用各种类型的编译器,已经越来越没有必要将解释器和编译器区分看待。

运行

ruby lexer.rb

使用

lexer = Lexer.new("README.md")
parser = lexer.parser
parser.show
puts parser.to_html

这是一段引用。

TODO

  • 测试
  • 有序列表
  • 列表支持多层
  • 表格
  • 语法高亮
  • 图片
  • 链接
  • 加粗
  • 倾斜
  • 删除线