2013-04-06 97 views
1

需要什么样的和推荐的工具(例如,使用Java)来创建一个“翻译”从TEXTFILES(其具有自己的语法)生成胶乳源文件?生成胶乳源文件

例如:

This is a list of items: 
* first 
* second 
* third 

应该生成包含

This is a list of items: 
\begin{itemize} 
    \item first 
    \item second 
    \item third 
\end{itemize} 
+0

您可以使用ANTLR此 - 学习曲线是陡峭的适度虽然。 – Perception 2013-04-06 15:30:59

+0

谷歌为Java的merkdown分析器? – 2013-04-08 17:06:34

回答

5

什么你正在努力开发被称为解析器一个编译* .tex文件。 的第一件事情做的时候制定一个解析器是确定formal grammar要解析的文件(即语法,输入文件必须遵循的规则)。正式语法通常用EBNF表示。例如,对于包含在你的TEXTFILES物品清单形式文法可以是:

list = { list_element } ; 
list_element = *, " ", {" "}, {all_characters} ; 
all_characters = ? all visible characters ? ; 

如果要分析的文件的语法regular(即没有递归),您可以使用简单的分析文件正则表达式(虽然它们可能会变得复杂)。

即使语法不规则也可以使用的其他选项是使用解析器生成器。解析器生成器把你形式文法并产生能够解析输入文件尊重你的语法和生成abstract syntax tree代表你可以用它来生成输出文件的输入文件的程序(终于!)。在Java中最常见的解析器发电机javaccANTLR(虽然他们more)。

的理论分析是相当复杂但解析器生成使用要简单得多,它的声音。那么具体,我的建议是:

  1. 确定你输入文件的语法并把它写下来
  2. 遵循JavaCC的教程(见本SO post

而且你应该能够从你的文本文件中生成tex文件。