目標在於解釋書本上的ll(1)語法分析過程(沒有實用價值),不包括符合ll(1)語法檢測(這個也可從生成的表中看出來),有first,follow集的求得和**的生成.程式中的類可被生成的**使用,只需求寫乙個bnf語法(不支援擴充套件格式)的文字做為引數傳遞給這個程式,就能生成分析該bnf的程式.
**是在visual studio裡除錯的,如果不是,把#include "stdafx.h"注釋掉.
看**先從demo.cpp看起,再了解幾個類cfactor,cfactors,crule和幾個生成表過程就可以.
動手寫**能更好的理解書上的講解,不再只是簡單的一要做什麼二要做什麼.更形象的理解cfg和下推自動機的關係,不再是一兩句.想想當年學的時候幾乎是背下來的,沒理解好.
如果有什麼錯誤請指出!^^
如果能夠幫助你,請幫頂!^^
ll1.h
ll1.cpp
ll1init.cpp
demo.cpp
bnfg.h
bnfg.cpp
C 練習例項4 之mysql實現
題目 輸入某年某月某日,判斷這一天是這一年的第幾天?程式分析 以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。drop function if exists test create function test year int,...
C語言基礎練習4
1.用陣列來處理求fibonacci數列問題 includeint main for i 2 i 20 i f i f i 2 f i 1 for i 0 i 20 i printf n return 0 2.起泡法排序10個數 includeint main printf the sorted n...
C語言習題 練習4
定義比較函式 intcompar const void px,const void py elseif px py else 2.降序 若xy,返回 1,x y,返回0 if px py else if px py else void swap char str,char dst,int size ...