120813 研究 Compiler Compiler 並非是要做編譯器, 只是想從 Parser 中得到一點靈感, 涉入 Compiler 領域就已經太 Over 了!
※ 工具
Coco-R http://www.ssw./coco/
Antlr http://www./
Irony.Net http://irony./
NParsec http://www./haskellwiki/Parsec#Parsec_clones_in_other_languages
Rx Parser http://rxx./wikipage?title=Parsers
PEP http://www.ling./~scott/#software a top-down dynamic CFG parser (Java)
※ 網路爬文
? 装配中的脑袋
※ 網路爬文
◎ [Forum] Learning to Write a Compiler 2011-12-3
◎ Steve Gilham -- Monadic Parsers in C# 2011-1-18
◎ CODE RANT -- Monads in C# 2011-1-9
◎ [Forum] Implementing a Top Down Parser in C# 2011
ExpressionEvaluatorGrammar
◎ CodeProject Don Kackman -- Dynamically evaluated SQL LINQ queries 2009-11-10 ★★★★★
var result = source.Query<Person, Tuple<string, double>>(
"SELECT Address, Avg(Age) FROM this GROUP BY Address");
var result2 = source.Query<Person, Family>(
"SELECT Address, Avg(Age) AS AverageAge FROM this GROUP BY Address");
var result3 = source.Query<Person>("SELECT * FROM this ORDER BY age");
var result4 = source.Query<Person, string>("SELECT DISTINCT address FROM this")
Don Kackman -- SqlLinq: Taking LINQ to SQL in the Other Direction 2008-7-27 ★★★★★
DataSet data = new DataSet();
MusDbConnection connection = new MusDbConnection("root='C:\\Music';recurse=true;FileExtensions=wma,mp3");
connection.Open();
IDataAdapter adapter = new MusDataAdapter("SELECT * FROM media", connection);
adapter.Fill(data);
WhereClause ★★★★
SyntaxRuleFactory ★★★★
[TODO]
◎ [Forum] how to create a parser for search queries 2009-11-7
string sentence = "house in new york priced over $500000 with a swimming pool";
string[] values = sentence.Split(new []{ " in ", " priced over ", " with a "}, StringSplitOptions.None);
string type = values[0]; string area = values[1];
string price = values[2]; string accessories = values[3];
◎ Joel Pobar -- Create a Language Compiler for the .NET Framework 2008-2 ★★★★
Scanner → Parser → AST → Code Generator → Assembly
◎ CodeProject Drazen Dotlic -- Format and colorize C# code for the Web(log) 2005-3-14 ★★★★★
CoCo-R Compiler Compiler
€D:\MS.NET\CodeProject\Project\Format and colorize CSharp code
◎ CodeProject Michael Bebenita -- A Simple Compiler for the Common Language Runtime 2003-5-5
◎ James Alan Farrell -- Compiler Basics 1995-8
[TODO]
第五章- 編譯器(Compiler)
http://www./~ycliaw/Teaching/1002/SP/05_Compiler.pdf
◎ CodeProject Matthew -- Entity mapping language implementation using bsn-goldparser with CodeDom 2012-4-5
http://www./Articles/361208/Entity-mapping-language-implementation-using-bsn-g
◎ CodeProject dave.dolan -- The Whole Shebang: Building Your Own General Purpose Language Interpreter (Who Needs A Reason?!) 2010-11-22
http://www./Articles/129965/The-Whole-Shebang-Building-your-own-general-purpos
◎ CodeProject Martin.Holzherr -- Parsing Expression Grammar Support for C# 3.0 Part 1 - PEG Lib and Parser Generator 2008-9-26
http://65.39.148.52/Articles/29713/Parsing-Expression-Grammar-Support-for-C-3-0-Part
◎ CodeProject Adrian_Moore -- Introduction to GOLD Parser 2005-5-26 ★★★★★
http://www./Articles/10492/Introduction-to-GOLD-Parser
? 装配中的脑袋-- 手工解析.NET完全限定类型名称 2009-8-27
? 装配中的脑袋-- 自己动手开发编译器(零)序言 2011-6-6
? 装配中的脑袋-- 自己动手开发编译器(一)编译器的模块化工程 2011-6-7
? 装配中的脑袋-- 自己动手开发编译器(二)正则语言和正则表达式
? 装配中的脑袋-- 自己动手开发编译器(三)有穷自动机
? 装配中的脑袋-- 自己动手开发编译器(四)利用DFA转换表建立扫描器
? 装配中的脑袋-- 自己动手开发编译器(五)miniSharp语言的词法分析器
? 装配中的脑袋-- 自己动手开发编译器特别篇——用词法分析器解决背诵圣经问题
? 装配中的脑袋-- 自己动手开发编译器(六)上下文无关语言和文法
? 装配中的脑袋-- 自己动手开发编译器(七)递归下降的语法分析器
? 装配中的脑袋-- 自己动手开发编译器(八)用Linq编写解析器组合子
? 装配中的脑袋-- 自己动手开发编译器(九)CPS风格的解析器组合子
? 装配中的脑袋-- 自己动手开发编译器(十)miniSharp语法分析器
? 装配中的脑袋-- 自己动手开发编译器(十一)语义分析
? 装配中的脑袋-- 自己动手开发编译器(十二)生成托管代码
[TODO]
◎ 當麻許 -- [C#] Lia 研究篇-關於字串分離(Split) 2012-10-6
http://www./junegoat/archive/2012/10/06/lia-c-sharp-split-words.aspx