亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? yabbison.txt

?? 很簡單的編譯器!不過最重要的是思想!
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
%{
/*
     YABASIC --- a tiny integrated Basic Compiler/Interpreter

     BISON - part
     
     this Program is subject to the GNU General Public License;
     see the file yabasic.c for details.
*/


#undef WINDOWS

#ifndef YABASIC_INCLUDED
#include "yabasic.h"     /* definitions of yabasic */
#endif

#include <malloc.h>

#if HAVE_ALLOCA_H
#include <alloca.h>
#endif

void __yy_bcopy(char *,char *,int); /* prototype missing */

int tileol; /* true, read should go to eon of line */
int yylineno=1;
int yylex(void);
%}

%union {
  double fnum;          /* float number */
  int inum;             /* integer number */
  int token;            /* token of command */
  int sep;              /* number of newlines */
  char *string;         /* quoted string */
  char *symbol;         /* general symbol */
  char *digits;         /* string of digits */
  char *strsym;         /* string symbol */
}

%type <fnum> const
%type <fnum> number
%type <inum> intnum
%type <symbol> symbol_or_lineno
%type <inum> hashed_number
%type <sep> tSEP
%type <sep> tEOFILE

%token <fnum> tFNUM
%token <symbol> tSYMBOL
%token <strsym> tSTRSYM
%token <digits> tDIGITS
%token <string> tSTRING

%token tFOR tTO tSTEP tNEXT tGOTO tGOSUB tLABEL tON
%token tINTERRUPT tBREAK tCONTINUE tSEP tEOFILE
%token tIF tTHEN tELSE tENDIF
%token tPRINT tINPUT tLINE tRETURN tDIM tEND tAT tSCREEN tREVERSE
%token tAND tOR tNOT
%token tNEQ tLEQ tGEQ tLTN tGTN tEQU
%token tREAD tDATA tRESTORE
%token tOPEN tCLOSE tORIGIN
%token tWINDOW tDOT tLINE tCIRCLE tTEXT tCLEAR tPRINTER
%token tWAIT tBELL tMAP tXMAP tYMAP tARROW tXTICK tYTICK
%token tBOX tRECT tNEW tMARKER tCURVE

%token tSIN tASIN tCOS tACOS tTAN tATAN tEXP tLOG tSQRT tMYEOF
%token tINT tFRAC tMOD tRAN tLEN tVAL tLEFT tRIGHT tMID tLEN tMIN tMAX
%token tSTR tINKEY tCHR tASC tUPPER tLOWER tTRIM tLTRIM tRTRIM tINSTR 
%token tSYSTEM tSYSTEM2 tPEEK tPEEK2 tPOKE tDATE tTIME

%left tOR
%left tAND
%left tNOT

%left '-' '+'
%left '*' '/'
%left '^'
%nonassoc UMINUS

%%

program: statement_list tEOFILE {end_of_file=TRUE;YYACCEPT;}
  ;

statement_list: statement
  | statement_list {if (errorlevel<=ERROR) {YYABORT;}} 
    tSEP {yylineno+=$3;} statement
  ;

statement:  /* empty */
  | string_assignment 
  | assignment
  | for_loop 
  | if_clause
  | tGOTO symbol_or_lineno {create_goto($2);}
  | tGOSUB symbol_or_lineno {create_gosub($2);}
  | tON tINTERRUPT tBREAK {create_exception(TRUE);}
  | tON tINTERRUPT tCONTINUE {create_exception(FALSE);}
  | tON expression tGOTO {add_command(cSKIPPER);}
    goto_list {add_command(cNOP);}
  | tON expression tGOSUB {add_command(cSKIPPER);} 
    gosub_list {add_command(cNOP);}
  | tLABEL symbol_or_lineno {create_label($2);}
  | tOPEN hashed_number ',' string_expression ',' string_expression
    {create_myopen($2,'+');}
  | tOPEN hashed_number ',' string_expression {create_myopen($2,'-');}
  | tCLOSE hashed_number {create_myclose($2);}
  | tPRINT printintro printlist {create_revert(FALSE);} semicolon
  | tINPUT {tileol=FALSE;} inputintro inputlist 
  | tLINE tINPUT {tileol=TRUE;} inputintro inputlist 
  | tREAD readlist
  | tDATA datalist
  | tRESTORE {create_restore("");}
  | tRESTORE symbol_or_lineno {create_restore($2);}
  | tRETURN {add_command(cRETURN);}
  | tDIM dimlist 
  | tOPEN tWINDOW expression ',' expression {create_openwin(FALSE);}
  | tOPEN tWINDOW expression ',' expression ',' string_expression 
         {create_openwin(TRUE);}
  | tWINDOW tORIGIN string_expression {add_command(cMOVEORIGIN);}
  | tDOT mapping {add_command(cDOT);}
  | tLINE mapping tTO mapping {create_line('l');}
  | tLINE tTO mapping {create_line('t');}
  | tNEW tCURVE {create_line('n');}
  | tCIRCLE mapping ',' expression {add_command(cCIRCLE)}
  | tTEXT mapping ',' string_expression {create_text(FALSE);}
  | tTEXT mapping ',' string_expression ',' string_expression
        {create_text(TRUE);}
  | tMAP expression ',' expression ',' expression ',' expression tTO
        expression ',' expression ',' expression ',' expression 
        {add_command(cMAKEMAP);}
  | tARROW mapping tTO mapping {create_line('a');}
  | tXTICK mapping ',' string_expression {create_tick(1);}
  | tYTICK mapping ',' string_expression {create_tick(3);}
  | tXTICK mapping {create_tick(0);}
  | tYTICK mapping {create_tick(2);}
  | tRECT mapping tTO mapping {create_rect(FALSE);}
  | tBOX mapping tTO mapping {create_rect(TRUE);}
  | tMARKER mapping ',' string_expression {create_marker(3);}
  | tMARKER mapping ',' string_expression ',' expression {create_marker(4);}
  | tMARKER mapping ',' string_expression ',' expression ',' expression {create_marker(5);}
  | tCLOSE tWINDOW {add_command(cCLOSEWIN);}
  | tCLEAR tWINDOW {add_command(cCLEARWIN);}
  | tCLEAR tSCREEN {add_command(cCLEARSCR);}
  | tOPEN tPRINTER {create_openprinter(0);}
  | tOPEN tPRINTER string_expression {create_openprinter(1);}
  | tCLOSE tPRINTER {add_command(cCLOSEPRN);}
  | tWAIT expression {add_command(cWAIT);}
  | tBELL {add_command(cBELL);}
  | tINKEY {create_function(fINKEY); create_popstrsym(NULL);}
  | tSYSTEM2 '(' string_expression ')' {create_function(fSYSTEM2);
	create_popdblsym(NULL);}
  | tPOKE string_expression ',' string_expression {create_poke('s');}
  | tPOKE string_expression ',' expression {create_poke('d');}
  | tEND {add_command(cEND);};

string_assignment: tSTRSYM tEQU string_expression {create_popstrsym($1);}
  | tMID '(' tSTRSYM {create_pushstrptr($3);} ',' expression ',' expression ')' tEQU string_expression {create_changestring(fMID);}
  | tLEFT '(' tSTRSYM {create_pushstrptr($3);} ',' expression ')' tEQU string_expression {create_changestring(fLEFT);}
  | tRIGHT '(' tSTRSYM {create_pushstrptr($3);} ',' expression ')' tEQU string_expression {create_changestring(fRIGHT);}
  | tSTRSYM '(' {pushcounter();} indexlist ')' tEQU string_expression {create_doarray($1,ASSIGNSTRINGARRAY);}
  | tMID '(' tSTRSYM '(' {pushcounter();} indexlist ')' {create_doarray($3,GETSTRINGPOINTER);} ',' expression ',' expression ')' tEQU string_expression {create_changestring(fMID);}
  | tLEFT '(' tSTRSYM '(' {pushcounter();} indexlist ')' {create_doarray($3,GETSTRINGPOINTER);} ',' expression ')' tEQU string_expression {create_changestring(fLEFT);}
  | tRIGHT '(' tSTRSYM '(' {pushcounter();} indexlist ')' {create_doarray($3,GETSTRINGPOINTER);} ',' expression ')' tEQU string_expression {create_changestring(fRIGHT);}
  ;

string_expression: tSTRSYM {create_pushstrsym($1);}
  | string_function;
  | tSTRING {if ($1==NULL) {error(ERROR,"String not terminated");create_pushstr("");} else {create_pushstr($1);}}
  | string_expression '+' string_expression {add_command(cCONCAT);}
  | tSTRSYM '(' {pushcounter();} indexlist ')' {create_doarray($1,CALLSTRINGARRAY);}
  | '(' string_expression ')'
  ;

string_function: tLEFT '(' string_expression ',' expression ')' {create_function(fLEFT);}
  | tRIGHT '(' string_expression ',' expression ')' {create_function(fRIGHT);}
  | tMID '(' string_expression ',' expression ',' expression ')' {create_function(fMID);}
  | tSTR '(' expression ')' {create_function(fSTR);}
  | tSTR '(' expression ',' string_expression ')' {create_function(fSTR2);} 
  | tINKEY {create_function(fINKEY);}
  | tCHR '(' expression ')' {create_function(fCHR);}
  | tUPPER '(' string_expression ')' {create_function(fUPPER);}
  | tLOWER '(' string_expression ')' {create_function(fLOWER);}
  | tLTRIM '(' string_expression ')' {create_function(fLTRIM);}
  | tRTRIM '(' string_expression ')' {create_function(fRTRIM);}
  | tTRIM '(' string_expression ')' {create_function(fTRIM);}
  | tSYSTEM '(' string_expression ')' {create_function(fSYSTEM);}
  | tDATE {create_function(fDATE);}
  | tTIME {create_function(fTIME);}
  | tPEEK2 '(' string_expression ')' {create_function(fPEEK2);}
  ;

assignment: tSYMBOL tEQU expression {create_popdblsym($1);} 
  | tSYMBOL '(' {pushcounter();} indexlist ')' tEQU expression {create_doarray($1,ASSIGNARRAY);}
  ;

expression: number {create_pushdbl($1);}
  | function
  | tSYMBOL {create_pushdblsym($1);}
  | tSYMBOL '(' {pushcounter();} indexlist ')' {create_doarray($1,CALLARRAY);};
  | '(' expression ')' 
  | expression '+' expression {create_dblbin('+');}
  | expression '-' expression {create_dblbin('-');}
  | expression '*' expression {create_dblbin('*');}
  | expression '/' expression {create_dblbin('/');}
  | expression '^' expression {create_dblbin('^');}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品伦理一区二区| 91网站最新地址| 日韩丝袜美女视频| 乱一区二区av| 国产日韩欧美精品在线| av一区二区三区四区| 亚洲精品乱码久久久久久久久| 91国产丝袜在线播放| 日韩中文字幕亚洲一区二区va在线 | 99久久国产免费看| 一区二区三区四区国产精品| 欧美色图天堂网| 精品一区二区免费看| 国产精品网站在线播放| 欧美丝袜丝交足nylons图片| 麻豆成人91精品二区三区| 国产蜜臀av在线一区二区三区| 成人av资源在线观看| 亚洲自拍偷拍综合| 欧美一区二区三区在| 国产91精品在线观看| 偷拍与自拍一区| 亚洲国产成人午夜在线一区| 欧美日韩国产影片| 国产麻豆一精品一av一免费| 亚洲激情网站免费观看| 日韩女优毛片在线| 91美女福利视频| 韩国欧美国产1区| 亚洲视频你懂的| 日韩精品一区二区三区老鸭窝 | 精品一区二区三区在线观看国产 | 久久精品一级爱片| 欧美日韩在线观看一区二区| 国产一区二区不卡老阿姨| 亚洲无线码一区二区三区| 日本一区二区久久| 欧美一区二区三区在线观看视频| av资源站一区| 国产精品自拍三区| 日韩av一区二区在线影视| 亚洲另类在线制服丝袜| 国产亚洲综合在线| 91精品国产品国语在线不卡| 日本乱人伦aⅴ精品| 国产揄拍国内精品对白| 午夜精品福利久久久| 亚洲精品中文在线观看| 国产欧美1区2区3区| 欧美成人vps| 欧美一区二区在线播放| 欧美亚洲日本国产| 日本精品视频一区二区| aa级大片欧美| 成人免费毛片片v| 国产乱码精品一区二区三区av| 亚洲第一狼人社区| 亚洲精品乱码久久久久久久久 | 成人午夜精品一区二区三区| 美女免费视频一区二区| 日韩电影在线一区| 亚洲成人动漫一区| 亚洲一二三专区| 亚洲综合激情另类小说区| 综合av第一页| 中文字幕一区二区三区在线不卡| 中文字幕免费一区| 国产精品久久久久久久久免费丝袜| 26uuu国产电影一区二区| 91精品国产高清一区二区三区蜜臀 | 欧美一区二区三区小说| 欧美天堂一区二区三区| 欧美性色aⅴ视频一区日韩精品| 99精品视频在线观看| www.久久精品| 99久久综合精品| 在线国产亚洲欧美| 精品视频999| 日韩一区二区三区在线| 精品日韩99亚洲| 久久久久久综合| 国产片一区二区| 综合欧美一区二区三区| 一区二区免费在线播放| 婷婷开心激情综合| 美国毛片一区二区三区| 国产在线乱码一区二区三区| 国产成人免费视频网站| 成+人+亚洲+综合天堂| 91美女视频网站| 欧美日韩国产一级片| 日韩精品一区在线| 久久看人人爽人人| 亚洲人成小说网站色在线| 亚洲国产wwwccc36天堂| 久久精品国产精品亚洲红杏| 国产中文字幕精品| 99riav久久精品riav| 欧美日韩亚洲不卡| 欧美成人vr18sexvr| 国产精品丝袜久久久久久app| 伊人色综合久久天天人手人婷| 午夜影院在线观看欧美| 久久国产免费看| 成人免费看视频| 欧美精品 国产精品| 精品美女在线播放| 成人欧美一区二区三区小说| 伊人色综合久久天天| 麻豆免费精品视频| 97成人超碰视| 欧美一区二区三区不卡| 中文字幕精品一区二区精品绿巨人 | 精品一区二区三区免费观看| 成熟亚洲日本毛茸茸凸凹| 在线影视一区二区三区| 欧美变态tickling挠脚心| 亚洲色图视频免费播放| 精品一区二区三区久久| 91九色02白丝porn| 精品理论电影在线| 亚洲午夜久久久久中文字幕久| 国产精品一区二区x88av| 欧美日韩中文精品| 中文字幕在线视频一区| 美女视频一区二区三区| 欧美亚洲尤物久久| 国产精品久久久久久久裸模| 另类调教123区| 欧美三级电影在线观看| 国产精品传媒入口麻豆| 韩国视频一区二区| 欧美日本在线看| 亚洲黄一区二区三区| 国产suv精品一区二区三区| 日韩欧美亚洲国产另类| 亚洲综合男人的天堂| 波多野结衣中文字幕一区 | 欧美tickling网站挠脚心| 亚洲精品一二三四区| 高清视频一区二区| 26uuu欧美| 美女视频网站黄色亚洲| 欧美精选一区二区| 洋洋成人永久网站入口| 99久久伊人精品| 亚洲国产精品成人综合色在线婷婷| 久久se精品一区精品二区| 欧美少妇bbb| 亚洲一区在线视频观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 久久久久综合网| 免费在线视频一区| 欧美一区二区三区四区在线观看| 亚洲欧美视频在线观看| 91首页免费视频| 日韩理论电影院| 不卡高清视频专区| 亚洲欧洲av另类| 99久久精品国产一区| 中文字幕va一区二区三区| 国产福利91精品一区二区三区| 欧美精品一区二区三区蜜臀| 经典三级一区二区| 精品国产在天天线2019| 极品少妇xxxx精品少妇| 精品精品国产高清一毛片一天堂| 久久国产乱子精品免费女| 日韩精品中文字幕一区二区三区| 麻豆精品一区二区av白丝在线| 91精品国产综合久久精品app | 亚洲18影院在线观看| 欧美亚洲综合在线| 同产精品九九九| 日韩一区二区电影| 韩国一区二区视频| 亚洲国产精品t66y| 91亚洲永久精品| 亚洲第一成人在线| 日韩午夜在线影院| 国产乱子伦视频一区二区三区| 日本一区二区三级电影在线观看| 国产成人在线看| 亚洲欧美色图小说| 欧美日韩高清一区| 国产乱一区二区| 亚洲欧美日韩在线播放| 欧美色中文字幕| 精品影视av免费| 国产精品卡一卡二卡三| 欧美亚洲国产bt| 久久99精品一区二区三区三区| 国产日本欧洲亚洲| 欧美亚洲国产bt| 91浏览器入口在线观看| 日韩精品一卡二卡三卡四卡无卡| 欧美成人性福生活免费看| 白白色 亚洲乱淫| 日本欧美在线看| 国产精品亲子乱子伦xxxx裸|