語法分析總

2021-07-23 14:23:19 字數 1013 閱讀 8443

[ ]表示出現一次或0次,{}表示出現0次或多次,()表示是乙個整體

程式aint x=1,y=3;

int fun(int a)

return 2*a;

int main()

int  a=3;

printf("%d\n",fun(a));

程式a 就是個翻譯單元

乙個完整的c檔案是乙個翻譯單元

翻譯單元由若干個外部宣告和乙個檔案結束符組成符

外部宣告可以是宣告也可以是函式定義

程式a中有三個外部宣告

乙個是宣告  int x=....

兩個是 函式定義

函式定義由 型別區分符 宣告符 函式體組成

型別區分符 就是 int void char short 或者自己定義的結構體型別

自己定義的結構體 是

struct 名稱    或者是

struct 名稱

型別區分符 宣告符,宣告符......;

......

宣告符 是

[*] 識別符號 [宣告符字尾]

宣告符出現*時一般是與前面的型別區分符搭配表示 指標

如 int *p 定義了乙個整型指標p

宣告符字尾是

'[' 整型變數 ']'       帶單引號的括號表字元    或

'('型別區分符 宣告符,型別區分符 宣告符,......')' 

定義函式的時候 int fun(int a)

fun(int a)是乙個宣告符

(int a)是宣告符字尾

定義結構體的時候

struct node

int a[4];

a[4]就是個宣告符

[4]是宣告符字尾

函式體是乙個復合語句

語句1語句2

......}宣告

型別區分符;    或

型別區分符 宣告符[=初始值],宣告符[=初始值].......;

比如 int a=3,b=4,x;

就是個宣告

語法分析 自上而下分析

語法分析 是編譯過程的核心部分。它的任務是在詞法分析識別出單詞符號串的基礎上,分析並判定程式的語法結構是否符合語法規則。語言的語法結構是用上下文無關文法描述的。因此,語法分析器的工作本質上就是按文法的產生式,識別輸入符號串是否為乙個句子。這裡所說的輸入串是指由單詞符號 文法的終結符 組成的有限序列。...

LTP語法分析

詞性標註 part of speech tagging,pos 是給句子中每個詞乙個詞性類別的任務。這裡的詞性類別可能是名詞 動詞 形容詞或其他。採用863詞性標註集 tag description example a adjective 美麗 b other noun modifier 大型,西式...

語法分析程式

語法分析程式 include include typedef struct link 字元鍊錶 link char special 10 void specialchar link charhead main while n n q charhead next while q null printf...