什么是一些奇特的解析技术?

eyb*_*erg 4 regex grammar ocaml

在过去的一年里,我一直在解析扑克手的历史,并且总体上已经学会了很多关于解析的知识.

我们从正则表达式开始,但很快意识到这不容易扩展.我们跳过了从ruby到c ++的语言,最后发现它是必须改变的算法.

我们选择了Boost :: Spirit并观察我们的速度在我们原始速度的10倍以上的订单上急剧上升.然后我们跳过java并且正在使用antlr为每个站点创建语法.这绝对是迄今为止最快的方法,它非常彻底,因为你确切地知道你在"完整"语法方面的立场.不幸的是,我花费了大量的时间来处理这些语法 - 它们的工作非常好,但还不完美.

无论如何,对于手头的问题有足够的背景 - 是否有任何"异国情调"或不太知名的解析技术,我不知道?我只知道lexing /解析语法和其他低级正则表达式/循环方法.

对于那些不熟悉扑克手历史的人,我会发布一个,这样你就能分辨出结构是什么.

Full Tilt Poker Game #12037626529: Table durrrr (heads up, deep) - $500/$1000 -
Pot Limit Omaha Hi - 2:00:48 ET - 2009/05/05
Seat 1: durrrr ($196,456.50)
Seat 2: Gus Hansen ($65,499)
durrrr posts the small blind of $500
Gus Hansen posts the big blind of $1,000
The button is in seat #1
*** HOLE CARDS ***
durrrr raises to $3,000
Gus Hansen raises to $9,000
durrrr calls $6,000
*** FLOP *** [3d 4d 7d]
Gus Hansen has 15 seconds left to act
Gus Hansen checks
durrrr checks
*** TURN *** [3d 4d 7d] [Jh]
Gus Hansen checks
durrrr checks
*** RIVER *** [3d 4d 7d Jh] [Ah]
Gus Hansen has 15 seconds left to act
Gus Hansen checks
durrrr has 15 seconds left to act
123stayfree (Observer): GUS I NOW BRING U LUCK
durrrr bets $7,600
Gus Hansen has 15 seconds left to act
Gus Hansen has requested TIME
Hernandez777 (Observer): Gus has the super-duper nuts
Gus Hansen calls $7,600
Podobed45 (Observer): fluuuuuuuuuush
*** SHOW DOWN ***
durrrr shows [Kc 3s Qd As] two pair, Aces and Threes
Gus Hansen mucks
durrrr wins the pot ($33,199.50) with two pair, Aces and Threes
*** SUMMARY ***
Total pot $33,200 | Rake $0.50
Board: [3d 4d 7d Jh Ah]
Seat 1: durrrr (small blind) collected ($33,199.50)
Seat 2: Gus Hansen (big blind) mucked
Run Code Online (Sandbox Code Playgroud)

我很清楚其他收集信息的方法(例如屏幕抓取和dll注入),但仍然需要将手历史转换为结构化数据,因此我只关注获取信息的方法,如正则表达式/语法...

我想如果我找不到什么东西,我将用ocamllex/ocamlyacc重写我们的语法.

更新

fyi:regexen的速度是~60手/秒,而语法处理600多手/秒...数据全部整理后整个手被转换成xml ...需要20-30个正则表达式(at对于你要解析的每个站点而言,语法方面的每个站点都有自己的语法,并且有大量的词法分析器/解析器规则(但它的代码大小仍然较小)

我确实有龙书,并一直在阅读它 - 这已经摒弃了我对使用ocamllex/ocamlyacc的兴趣....速度是这里游戏的名称..

Nos*_*dna 5

既然你正在寻找异国情调,请阅读这篇关于Vaughan Pratt的自上而下运营商优先权的文章......

http://javascript.crockford.com/tdop/tdop.html