實現實數範圍內的加減乘除、乘方、開方,三角函式sin、cos運算
a)在命令提示符下依次執行一下兩行命令
flex 檔名.lex
bison -o檔名.c 檔名.y
編譯的話,可用命令提示符,不過需要自己搭建環境
gcc -o 可執行程式名稱 lex.yy.c bison生成的檔名.c
當然可以用其他的方法去執行,不過需要在bison生成的.c檔案中加入lex生成的檔案的檔名,這樣就可以在codeblocks裡面或者其他c語言的編譯環境下,直接執行bison生成的.c檔案
lex程式
%%%
/* a-z為變數 */
[a-z]\.?
[0-9
]+|[
0-9]
+\.[0-
9]*[
-+()
,=/*\n]
sin
cos
sqrt
pow
[ \t] ;
. yyerror("無效的輸入字元");
%%int yywrap(void)
bison程式
%token integer variable cos sqrt pow sin
%left '+'
'-'%left '*'
'/'%left sin%%
%program:
program statement '\n'|;
statement:
expr
|variable '=' expr
;expr:
integer
|variable
|expr '+' expr
|expr '-' expr
|expr '*' expr
|expr '/' expr
|'('expr')'
|pow '(' expr ',' expr ')'
|sin'('expr')'
|cos '(' expr ')'
|sqrt '(' expr ')';%
%void
yyerror
(char
* s)
#include
"lex.yy.c"
intmain
(void
)
flex中自己寫的乙個BeanUtils類
在專案中不時由物件之間屬性的的拷貝所以寫了此類,感覺不是很好但是不知道 有錯?希望各位提出意見 package conponents 物件的賦值的過程的方法 source 賦值過程源的物件 desc 賦值過程目標的物件 propertys 賦值源中標的屬性陣列 isinclude 是否包括賦值源中屬...
如何利用Objective C寫乙個精美的DSL
在程式開發中,我們總是希望能夠更加簡潔 更加語義化地去表達自己的邏輯,鏈式呼叫是一種常見的處理方式。我們常用的 masonry expecta 等第三方庫就採用了這種處理方式。像這種用於特定領域的表達方式,我們叫做 dsl domain specific language 本文就介紹一下如何實現乙個...
利用反射自己寫的乙個ModelHelper類
開發中 很多人都會使用bll model這種開發,我也是,雖然現在有很多的自動生成工具,能在幾秒內生成cs的模板,但我個人還不是很喜歡,我還是喜歡自己乙個乙個去寫,這樣更能了解自己的 不過手動編寫的時候,最討厭的就是getmodel這類方法了,把datarow的資料轉換成乙個model,實在寫的我頭...