cost 309 ms
給定在 FsLexYacc 中實現的詞法分析器,我如何獲取所有標記?

[英]Given a lexer implemented in FsLexYacc, how do I get all of the tokens?

我在 FsLexYacc 中實現了一個詞法分析器和解析器。 為了調試詞法分析器,我想打印給定字符串的所有標記。 這是我到目前為止所擁有的:#load "../.paket/load/net5.0/FsLexYacc.Runtime.fsx" #load "./Domain.fs" #load " ...

FsLexYacc 編譯錯誤?

[英]FsLexYacc compile errors?

我正在嘗試在 F# 中設置一個新項目。 我使用 FsLexYacc 作為工具,上次我使用它是在 Fsharp 電源組“進入”時。 網站上的文檔不是很好。 在我看來,泛型類型注釋 'end 因為它是一個關鍵字.. 但我首先只是從頁面復制粘貼虛擬文件以確保 makefile 已啟動並運行。 (詞法分 ...

F# 中的簡單解析器規范中的錯誤

[英]Bug in a simple parser specification in F#

我想知道下面的解析器規范哪里出錯了。 解析器旨在解析和評估像 2+3*4 到 14 這樣的表達式。它將與 FsLexYacc 一起運行。 我得到了錯誤 第 18 行是指“Main”之前的行。 錯誤在哪里? ...

FsLex在'{'上解析錯誤

[英]FsLex aborts with parse error on '{'

我的Lexer應該在lexing期間區分括號並保持一堆打開的括號。 為此,我在我的fsl文件中指定了一個輔助函數,如下所示: 堆棧當然是char列表的ref。 並且推送,頂部,彈出相應地實現。 問題是,在我添加{ character。 現在FsLex只是因為error: pa ...

FsLex FsYacc:如何創建帶有多行注釋的語言

[英]FsLex FsYacc: How to create a language with a multi-line comment

我在玩FsLex和FsYacc,它們基於ocamllex和ocamlyacc。 用語言定義評論的最佳方法是什么? 我是否在lex文件中創建評論令牌? 注釋有一些復雜之處,我無法在語法的背景下回頭: 注釋可以放在語法中的任何位置,應該忽略。 注釋中實際上可以包含任何內容,包 ...

在FSYACC中使用記錄類型

[英]Using record types in FSYACC

在FSYACC中,通常會帶有導致元組的終端。 但是,為了方便起見,我想改用記錄類型。 例如,如果我的抽象語法樹(AbstractSyntaxTree.fsl)中包含以下內容: 我不清楚FSYACC(parser.fsy)中的正確語法,因為如果使用: 我希望可以推斷出類型B和元 ...

FsLexYacc:測試/MiniProject“.fsproj中的導入不正確”

[英]FsLexYacc : Tests/MiniProject “incorrect Import in .fsproj”

在github上 , FsLexYacc項目有一個測試目錄。 我嘗試設置最簡單的一個(“ LexAndYaccMiniProject”)。 我遵循以下步驟: 1 /創建一個名為“ LexAndYaccMiniProject”的F#控制台應用程序 2 /安裝軟件包( VS 20 ...

在F#lex / yacc解析器中區分“減號”運算符和負數

[英]Differentiate between 'minus' operator and negative numbers in F# lex/yacc parser

我正在嘗試使用FsLex和FsYacc解析簡單的腳本語言,並且在將負運算符與負數區分開時遇到問題。 如果我評估術語“ 1-2”,則解析器將返回所需的AST: Minus(NumberLiteral(1.0),NumberLiteral(2.0)) 。 但是,如果我評估術語“ 1-2”,則 ...

在Vs2013中使用FsLex / Yacc

[英]Using FsLex/Yacc in Vs2013

我正在嘗試恢復我在vs 2008工作的舊f#解析器項目與vs 2013一起工作。它使用FsLexYacc。 我通過使用預建步驟使其構建正常: 但這並不理想,因為無論輸入是否發生變化,它總是會執行。 然后我嘗試使用舊的MsBuild操作: 但這些在構建過程中似乎完全被忽 ...

使用yacc解析一系列表達式

[英]Parsing a sequence of expressions using yacc

我試圖解析一系列沒有分隔符的表達式,以便能夠解析ML / F#樣式函數調用: 但是,表達式序列給出了一個移位/減少沖突的列表。 我的猜測是沖突是由我的語法的遞歸性質引起的,但我不知道如何解決這些沖突。 我的(簡化的)優先規則和語法如下所示: 當我把它傳遞給fsyacc ...

F#整數文件指令

[英]F# integer file directive

我一直在使用fslex和fsyacc,與F#源文件( .fs他們從詞法分析器(產生.fsl )和解析器( .fsp )規則,是指原.fsl (有時在同一.fs源文件)所有地方都有這樣的陳述(數字是行號): 此外, .fs通過生成的文件pars.fsp做同樣的事情,但additionaly ...

我可以將參數傳遞給我的fsyacc解析器嗎?

[英]Can I pass parameters to my fsyacc parser?

我知道可以將參數傳遞給詞法分析器: 但是我無法以類似的方式定義我的解析器起始符號。 我試着像這樣定義:(感謝這個問題) 但是我必須像這樣定義每個非終端符號,它們都將返回lambdas。 這不是我想要實現的,我希望能夠訪問幾個非終端中的scope參數並在解析期間執行它們的操 ...

如何在使用F#FsYacc解析期間添加和使用自定義上下文參數?

[英]How to add and use custom context parameters during parsing with F# FsYacc?

我在F#應用程序中使用FsLex和FsYacc進行字符串解析。 在抽象語法樹(AST)創建過程中,解析器必須決定如何創建AST(制作不同的樹,拋出異常等)。 解析器行為必須依賴於幾個參數。 在這里,我發現允許聲明類似的東西: 但我找不到如何使用這種結構,並在項目編譯期間退出了“ ...

獲取FS0035 => Construct已棄用

[英]Getting FS0035 => Construct is deprecated

在基於fsyacc的項目中,我有這樣一句話: 這是我得到的完整錯誤描述: CALast.fs(117,9):錯誤FS0035:不建議使用此構造:此類型縮寫具有一個或多個聲明的類型參數,這些參數不會出現在要縮寫的類型中。 類型縮寫必須使用縮寫類型中的所有聲明的類型參數。 考慮 ...

如何捕獲沒有引號字符的字符串

[英]How to capture a string without quote characters

我試圖捕獲沒有引號的引用字符串。 我有這個終端 而這個生產 以及這些詞法規則 它似乎是將一切QUOTE作為單個詞匯的QUOTE解釋,而不是解析。 所以也許我的問題在語法的其他地方 - 不確定。 我是以正確的方式來做這件事的嗎? 在我嘗試從字符串中排除引號之前,它解 ...

為什么此fsyacc輸入產生無法編譯的F#?

[英]Why is this fsyacc input producing F# that does not compile?

我的fsyacc代碼給出了一個編譯器錯誤,指出未找到變量,但我不確定為什么。 我希望有人能指出這個問題。 線| NAME {Conc($ 1)}和以下行均出現此錯誤: 我了解語法問題,但是yacc輸入有什么問題? 如果有幫助,這里是Ast定義: 和fslex輸入 ...

2011-11-03 17:09:14   1   635    f# / fsyacc  
使用FSyacc解析期間的有意義的錯誤

[英]Meaningful errors during parsing with FSyacc

我正在使用F#Power Pack中的fsyacc / fslex來解析一些源代碼。 為了檢測錯誤,我使用以下代碼: 但是,當此代碼在解析多行源文件時引發錯誤消息時,我得到的行和列位置錯誤: 如何正確獲得發生錯誤的行號? ...

我應該使用Workflow還是fsYacc?

[英]Should I use Workflow or fsYacc?

我有一個非常簡單的DSL,需要在.Net平台上進行解析。 我對解析器不是很了解,我一直在研究使用F#的示例(fsLex,fsYacc,FParsec)。 我對F#不太熟悉,但是對Workflow和LINQ有一定的經驗。 鑒於DSL的簡單性,我可以使用LINQ來實現詞法分析器。 工作流 ...


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