cost 140 ms
ragel解析器不貪心?

[英]ragel parser is not greedy?

我正在嘗試使用ragel在 C++ 中編寫 HTTP 解析器,但發現生成的解析器並不貪婪。 第一步是解析一個 URL,這里是從RFC-3986翻譯的 ragel 語法: 在這里,我將main規則設置為URL而不是URI_reference ,以便首先測試絕對 URL。 這是測試代碼:int mai ...

如何使用 ragel correclty 實現正則表達式 /cat[s]?(\\b|$)/?

[英]How to implement regex /cat[s]?(\b|$)/ with ragel correclty?

我想加速我用 Go 編寫的程序,並使用ragel將正則表達式轉換為有限狀態機。 在轉換類似於/cat[s]?(\\b|$)/正則表達式時,我無法弄清楚如何正確匹配輸入的結尾(它匹配單詞邊框或輸入的結尾),所以我做了這個解決方法: package main import( "strings" ...

2020-01-08 23:03:58   1   136    go / ragel  
使用 Ragel 從 ES6 模板文本中提取標記

[英]Extracting tokens out of ES6 template literals with Ragel

JavaScript 包含以下語法: 我想知道 Ragel 機器如何拆分上面的語法。 在我看來,右花括號的類型取決於解析狀態。 例如,在下面的代碼中,大括號是字符串標記的一部分,因為${標記不存在: 最后,當您考慮在變量表達式本身中也可以找到正確的卷曲時,它變得更加棘手,即: 如何使用 ...

2019-12-07 22:06:24   1   35    ragel  
在 ragel 中掃描“Quoted String”的正確方法是什么?

[英]What is the correct way to scan "Quoted String" in ragel?

我正在嘗試通過 go 學習 ragel,但我無法找到掃描引號字符串的正確方法 這是我定義的 以下帶有單引號字符串的表達式工作正常 如果我掃描上述條件然后我得到這個 printf 帶引號的字符串:“xyz.123” 但是如果我有 2 個帶引號的字符串,如下所示,它會失敗 它掃描兩 ...

2019-12-04 14:04:39   1   62    ragel  
拉吉爾過渡行動與國家行動之間的區別

[英]Difference between Ragel transition actions and state actions

狀態機,術語和工具對我來說都是全新的,盡管最近我一直在嘗試通過各種在線資源來解決這些問題。 當我想在Ragel和Go中構建比正則表達式更快的解析器時,就開始了。 我迷住了Ragel文檔的第3章,其中涵蓋了動作。 我不清楚與狀態轉換相關的動作與狀態本身之間的區別是什么。 這些示例僅對狀 ...

使用Ragel在Golang中兩個正則表達式的交點

[英]Intersection of two regular expressions in Golang using Ragel

該函數的模板如下: func GetIntersection(firstRegex string, secondRegex string) string { ... } 我正在嘗試使用Ragel獲得兩個正則表達式的交集。 不過,不確定Ragel是否是正確的工具。 我的最后一招 ...

針對已知長度的任何數據優化Ragel語義條件

[英]Optimize Ragel semantic conditions for any data of known length

Ragel手冊 6.5語義條件中有一個示例,該示例演示了如何使用when子句為可變大小的結構編寫語法。 它適用於小型結構,但是對於較大的結構,它會減慢速度,因為解析器會嘗試評估每個字符的條件。 我想要做的是跳過掃描,僅將數據復制到緩沖區中,以獲得這樣的語法(請注意any * ): ...

2018-02-14 16:23:05   1   68    ragel  
在Ragel中使用帶有掃描儀模塊的堆棧的正確方法是什么?

[英]What is the correct way to use a stack with a scanner block in Ragel?

我在Go上使用Ragel 6.10。 我確定我的代碼可能有問題,但是當我嘗試將堆棧與掃描程序塊一起使用時,出現一些奇怪的錯誤。 我正在嘗試設置括號匹配,我的代碼大致如下所示; 查看指南中的第46頁,看來應該可行。 當我運行Ragel ragel -G2 -Z main.rl 。 ...

2018-01-30 08:47:13   1   224    go / fsm / ragel  
如何匹配文件尾?

[英]How to match against end-of-file?

我想將換行符(“ \\ n”),分號(“;”)或eof匹配為有效的語句結尾。 前兩個很明顯,例如 但我不確定如何以同樣的方式與eof相匹配。 有什么方法可以與eof進行匹配? 我想知道empty是否會起作用,但是我不確定如何使用它。 ...

2018-01-09 04:23:46   1   78    eof / ragel  
fgoto使用ragel進行二進制可變長度協議

[英]fgoto on binary variable length protocol with ragel

我試圖將解析器編寫為簡單的二進制協議 0或更多的幀外字節 使用STX(0x02)開始幀 兩個messaje長度字節的messaje長度。 一個命令字節。 0個或更多數據字節。 一個checkun字節。 拉吉爾腳本 機器狀態 ...

2017-12-17 07:25:52   2   165    ragel  
使用Ragel解析C ++代碼庫中的字符串的原因是什么?

[英]What are the reasons for using Ragel to parse strings in a C++ codebase?

我繼承了一個使用Ragel進行字符串解析的C ++項目。 這是我第一次看到這樣做,我想了解為什么有人會使用Ragel而不是C ++來解析字符串? ...

2017-09-29 10:23:59   1   354    c++ / ragel  
在Ragel中解析“換行”的問題

[英]Issues with parsing 'newline' in Ragel

我使用Ragel和C ++作為主機來解析一些命令。 從文件中讀取命令,然后使用以下語法對其進行解析。 該命令的語法如下: 現在,在上面的語法中,在:或信號名稱后跟逗號,之后可以有一個換行符, 這是我解析上述命令時遵循的Ragel語法。 我面臨的問題是文件中遇到的新 ...

在Ragel中解析整數和HEX值

[英]Parsing an integer and HEX value in Ragel

我正在嘗試使用Ragel和C ++作為宿主語言來設計解析器。 在特定情況下,可以用兩種格式定義參數: 我有下面的代碼來解析這樣的參數: 但是,在上面定義的解析器命令中,只有整數值(如在a節中定義的)可以正確識別和解析。 如果提供了十六進制數字(例如0x24),則該數字將存儲為 ...

Lin描述符文件解析器

[英]Lin Descriptor File parser

我正在嘗試研究可能的解析器,這是開發可用於解析Lin描述符文件的PC應用程序的一部分。 當前的解析器應用程序基於flex-bison解析方法。 現在,我需要重新設計解析器,因為當前的解析器無法檢測特定的錯誤。 我以前曾使用Ragel parser( https://en.wikiped ...

Ragel(6.10)文檔插圖中的DEF狀態是什么

[英]What is the DEF state in the Ragel (6.10) document illustrations

Ragel 6.10手冊對它生成的FSM進行了許多說明。 其中一些顯示狀態DEF。 盡我所能告訴您,這從未定義/討論過。 什么是DEF狀態? 它的含義是什么? 例如,如果它出現在您的FSM abc中,則應完成 提前致謝 ...

2017-05-06 23:07:19   1   25    fsm / ragel  
Ragel可以執行單獨的命令解析並相應地引發錯誤嗎

[英]Can Ragel perform individual command parsing and throw errors accordingly

我正在嘗試解析命令:LoadSdf 12 abc.ldf我正在嘗試在命令的每個階段獲取錯誤( :LoadSdf , 12 , abc.ldf )。 但是我得到了不同的行為,如問題的后面部分所示。 以下是我的拉格爾偽代碼 預期產量: 觀察輸出: 用於錯誤處理的Rag ...

如何讓Ragel執行不同的動作進行解析

[英]How to get Ragel perform different actions for parsing

我是Ragel的新手,並一直在嘗試解析Regex表達的特定模式。 我希望找到匹配項時執行done動作,並且即使缺少任何單個字符也沒有匹配parse_error時要執行parse_error 。 這是我編寫的代碼: 我看到的行為是,當regex表達式完全匹配時,將執行done動作和 ...

2017-04-11 11:46:53   1   97    c++ / fsm / ragel  
Ragel和C ++編譯錯誤

[英]Compiling errors with Ragel and C++

我試圖在過去的兩天里學習Ragel,並且一直面臨與Ragel語法相關的一些問題。 我的目標是編寫一個解析器,以C ++作為宿主語言來識別Regex命令。 現在,我正在嘗試使用解析器識別以下命令- :LoadSdf [0-9]+ 以下是我正在嘗試的以下代碼: 當我嘗試使用命令ra ...

具有可選空格的簡單Ragel語法

[英]Simple Ragel grammar with optional whitespace

Ragel是一台功能強大的機器,但是我在語法上無法處理“可選”元素。 我有簡單的數字或字符串。 麻煩在於空白。 我不知道如何正確地在','和變量之間放置可選的空格。 輸入將是令牌之間的所有位置。 最后一行是“;” 或輸入。 我需要使用$ err()函數進行錯誤處理。 這是我的 ...

2017-03-07 16:25:54   1   185    ragel  

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM