![](/img/trans.png)
[英]What is the correct way to use a stack with a scanner block in Ragel?
[英]What is the correct way to scan "Quoted String" in ragel?
我正在嘗試通過 go 學習 ragel,但我無法找到掃描引號字符串的正確方法
這是我定義的
dquote = '"';
quoted_string = dquote (any*?) dquote ;
main := |*
quoted_string =>
{
current_token = QUOTED_STRING;
yylval.stringValue = string(lex.m_unScannedData[lex.m_ts:lex.m_te]);
fmt.Println("quoted string : ", yylval.stringValue)
fbreak;
};
以下帶有單引號字符串的表達式工作正常
if abc == "xyz.123" {
pp
}
如果我掃描上述條件然后我得到這個 printf
帶引號的字符串:“xyz.123”
但是如果我有 2 個帶引號的字符串,如下所示,它會失敗
if abc == "0003" {
if xyz == "5003" {
pp
}
}
它掃描兩個帶引號的字符串
帶引號的字符串:“0003”{ 如果 xyz ==“5003”
有人可以幫我解決這個問題嗎? 如果有更好的選擇
我正在使用以下版本
# ragel -v
Ragel State Machine Compiler version 6.10 March 2017
Copyright (c) 2001-2009 by Adrian Thurston
這成功了
quoted_string = dquote (any - newline)* dquote ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.