将标识符与任何程序分开的过程是什么?

我想实现以下。如何在c中执行此操作?
id     ::= letter { letter | digit | _ } | _main
letter ::= a | b | c | d | e | f | g | h | i | j | k | l |
           m | n | o | p | q | r | s | t | u | v | w | x |
           y | z |
           A | B | C | D | E | F | G | H | I | J | K | L |
           M | N | O | P | Q | R | S | T | U | V | W | X |
           Y | Z
digit  ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
    
已邀请:
这是一个词法分析器的规范,它采用一系列字符并将它们转换为词法元素(或标记)。 写一个词法分析器对于胆小的人来说不是一项任务,如果你问这个问题,你可能需要调查lex或flex来帮助你:-)如果你必须自己在C中做,你应该调查有限状态机 - 这些将允许您将文本元素转换为词法标记。 这很可能是说标识符由一个字母后跟一个(可能是可选的)字母,数字或
_
字符或字符
_main
(或令牌
_main
)组成,如果没有进一步的信息则不清楚。 另一个例子可能是这样的:
digit     ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
integer   ::= digit+
float     ::= integer '.' integer
它定义: a
digit
作为数字字符之一。
integer
作为一个或多个数字的序列。 a
float
为两个由
.
字符分隔的整数。     

要回复问题请先登录注册