Self-made scripting language, you must know the grammatical description of BNF

BNF (Backus-Naur Form) is a metalanguage for describing the syntax of programming languages. BNF uses a set of rules to describe the grammatical structure of a language, and it consists of a set of grammatical rules, each of which is represented as a combination of a nonterminal and one or more terminals or other nonterminals.

The following is the syntax description of BNF:

  1. Non-terminal symbols (Non-terminal symbols): Indicates symbols in grammar rules, usually enclosed in angle brackets, eg.

  2. Terminal symbols: Indicates actual characters or symbols in grammar rules, such as "+", "(", ")", etc.

  3. Grammatical rules (Production rules): Rules representing grammatical structures composed of non-terminal symbols and terminal symbols, usually separated by arrows "->". For example:

    -> +
    -> *
    -> ( ) |

    These rules describe a simple arithmetic expression language in which , , and are nonterminals, and "+", "*", "(", ")" and are terminals.

  4. Grammar start symbol (Start symbol): used to specify the starting point of a grammar rule, usually a non-terminal symbol. For example:

    -> +
    -> *
    -> ( ) |

    In this example, is the start symbol.

The grammar description of BNF can be used to represent any form of context-free grammar. It is a general metalanguage and is widely used to define the grammar of programming languages.

How to understand context-free grammar

Context-Free Grammar (CFG) is a formal language &

Guess you like

Origin blog.csdn.net/zhangzhechun/article/details/131567941