簡體   English   中英

您怎么稱呼它,以及如何閱讀? (解析方案)

[英]What do you call this and how to read this? (Parsing for Scheme)

目前,我正在學習如何用Java解析Scheme。 這是基本列表(我不知道它的正式名稱是什么)編輯:語法!

exp -> ( rest
     | #f
     | #t
     | ' exp
     | integer_constant
     | string_constant
     | identifier

rest -> )
     | exp+ [ . exp ] )

我的問題是:該列表叫什么名字,例如它的正式名稱是什么? “解析列表”? 編輯:根據評論,它稱為語法。

以及如何閱讀? 我的猜測是該表達式位於左括號和右括號之間,例如: ( exp )

另外,我猜這行之間的任何對象exp -> ( rest and rest ->) ,# #f ,# #t' expinteger_constantstring_constantidentifier都代替了前面示例中的表達式。 例如: ( #t )

列表上的最后一項是| exp+ [ . exp] ) | exp+ [ . exp] ) | exp+ [ . exp] ) ,我想是第一個右括號右邊的另一個表達式,例如前面的例子: ((#t) exp)

最后, [ . exp] [ . exp] ,括號只是說這是可選的?

如果我錯了,請糾正我。

這稱為語法。 寫下語法有許多不同的語法,但是它們彼此非常相似。

在這里->可以讀作“是”, | 表示為“或”, +為一個或多個,而[]為您懷疑,為“可選”。 這里使用的其他符號僅代表自己。 因此,該語法可以這樣讀取:

  1. 表達式是:

    • 左括號后加“休息”(請參閱​​2)
    • 或井號,后跟字母f
    • 或一個井號,后跟字母t
    • 或單引號后跟一個表達式
    • 或一個整數常量(如123
    • 或字符串常量(如"foo"
    • 或標識符(如foo
  2. “休息”是:

    • 右括號
    • 或一個或多個表達式,可選地后跟一個點和一個其他表達式,后跟一個右括號

因此foo是一個表達式(因為標識符是表達式), ()是一個表達式(因為)是一個“ rest”,而( rest是一個表達式, (foo)是一個表達式(因為foo是一個表達式, exp )是一個“休息”和( rest是一個表達式”)等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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