2016-05-14 7 views
2

私はラケットでプログラミング言語を作成していますプログラミング言語を作成し、私はダニー・ユGuide Danny Yoo Raggのガイドを読んでいた、私は例えば、文法を定義ショーエラーは、私が現在raggを使用していラケット

#lang ragg 
nested-word-list: WORD 
      | LEFT-PAREN nested-word-list* RIGHT-PAREN 

は、私はその機能が、私はそれが何であるかを知らない構文オブジェクトを生成知っ

#lang racket 


(require ragg/support) 
(require "nested-word-list.rkt") 

(define a-parsed-value 
    (parse (list (token 'LEFT-PAREN "(") 
      (token 'WORD "some") 
      (token 'LEFT-PAREN "[") 
      (token 'WORD "pig") 
      (token 'RIGHT-PAREN "]") 
      (token 'RIGHT-PAREN ")")))) 

a-parsed-value 

、トークンを渡すことによってfuncionの解析を使用しています。

私はこれらの

#lang racket 


(require ragg/support) 
(require "nested-word-list.rkt") 

(define a-parsed-value 
    (parse (list (token 'WORD "some") 
      (token 'LEFT-PAREN "[") 
      (token 'WORD "pig") 
      (token 'RIGHT-PAREN "]") 
      (token 'RIGHT-PAREN ")")))) 

a-parsed-value 

のようないくつかのトークンの病人を渡すとそれは私が例えば、以前の場合のために、それはエラーを生成することができる方法を知りたいこの

Encountered parsing error near token 'LEFT-PAREN ("[") while parsing #f [line=#f, column=#f, offset=#f] 

のようなエラーが発生します出力に「ERROR:MISSING BRACKET」と表示され、発生する可能性のあるすべてのエラーに対して表示されます。

注:たとえば、私は簡単な文法を使用していますが、実際には、私のオリジナルの文法は、Javaのような言語である

+0

ようこそ。誰もそれに従っていないので、[dr.racket]タグを削除してください。 – Matsmath

+0

彼は最初になることができます... –

答えて

1

それはあなたが改善するかによって生成されたエラーメッセージを修正する方法を求めているように聞こえますラグ。私はあなたが の本物のレクサーを追加すると、エラーの の良いソースの位置情報を得るでしょう。

これ以外にも、他のことについて心配していると思いますか?私はraggがエラーメッセージの生成を可能にするカスタマイズの程度は正確にはわかりませんが、それはraggのようなツールの範囲外です。

関連する問題