|
关于Basic程序解释器及编译原理的简单化(1)---Basic器的语法分析及主要代码(3) return; } var = toupper(*token)-'A'; /* get the equals sign */ get_token(); if (*token!='=') { serror(3); return; } /* get the value to assign to var */ get_exp(&value); /* assign the value */ variables[var] = value; } /* execute a simple version of the BASIC PRINT statement */ void print() { int answer; int len=0,spaces; char last_delim; do { get_token(); /* get next list item */ if (tok==EOLtok==FINISHED) break; if (token_type==QUOTE) { /* is string */ printf ("%s",token); len+=strlen(token); get_token(); } else { /* is expression */ putback(); get_exp(&answer); get_token(); len += printf ("%d",answer); } last_delim = *token;
if (*token==',') {
|