📄 impubasicview.h
字号:
// IMPUBasicView.h : interface of the CIMPUBasicView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_IMPUBASICVIEW_H__691156A8_D764_4F60_8C56_B0DA70D8ED2D__INCLUDED_)
#define AFX_IMPUBASICVIEW_H__691156A8_D764_4F60_8C56_B0DA70D8ED2D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "RunDlg.h"
#include "RunResultDlg.h"
#include "HelpDlg.h"
#include "MainFrm.h"
/////////////////////////////////////////////////
#include "stdio.h"
#include "setjmp.h"
#include "math.h"
#include "ctype.h"
#include "stdlib.h"
#include "InputDlg.h"
#include "StopDlg.h"
#define NUM_LAB 1000
#define LAB_LEN 10
#define PROG_SIZE 10000
#define DELIMITER 1
#define VARIABLE 2
#define NUMBER 3
#define COMMAND 4
#define STRING 5
#define QUOTE 6
#define PRINT 1
#define INPUT 2
#define IF 3
#define THEN 4
#define FOR 5
#define NEXT 6
#define TO 7
#define GOTO 8
#define EOL 9
#define FINISHED 10
#define GOSUB 11
#define RETURN 12
#define END 13
#define WHILE 14
#define WEND 15
#define ENDIF 16
#define ELSE 17
#define REM 18
#define DO 19
#define LOOP 20
#define EXITDO 21
#define UNTIL 22
#define SELECT 23
#define CASE 24
#define ENDSELECT 25
#define STEP 26
#define IS 27
#define STOP 28
#define ON 29
#define AND 30
#define OR 31
#define NOT 32
/////////////////////////////////////////////////////////////////////////////
// CRunDlg dialog
#include "RunDlg.h"
int variables[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
struct CCommands{
CString command;
int tok;
};
struct for_stack{
int var;
int step;
int target;
char *loc;
};
struct label{
char name[LAB_LEN];
char *p;
}label_table[NUM_LAB];
struct casenode{
int n;
};
char * prog;
char token[80];
CPtrList wstack1;//whileջ
CPtrList gstack1;//gosubջ
CPtrList fstack1;//forջ
CStringList ifstack1;//ifջ
CPtrList dstack1;//do-loopջ
CPtrList slestack1;//selectջ
CStringList casestack1;//caseջ
/////////////////////////////////////////////////////
class CIMPUBasicView : public CEditView
{
protected: // create from serialization only
CIMPUBasicView();
DECLARE_DYNCREATE(CIMPUBasicView)
// Attributes
public:
int tok,token_type;
CString val_Edit1,val_Edit2;
public:
void exec_on();
void exec_stop();
int isdelim3(CString c);
int get_rel(int x,CString op,int y);
void findeolelse();
CString getctop();
void cpop();
void cpush(CString s);
int getstop();
void spop();
void spush(casenode *s);
void endselect();
void gonextcase();
void exec_case();
void exec_select();
void findloop();
char * dpop();
void dpush(char *s);
void exitdo();
void exec_loop();
void exec_do();
void rem();
CString ifgettop();
void ifpop();
void ifpush(CString s);
void findendifelse();
void exec_endif();
void exec_else();
char * wpop();
void wpush(char *s);
void find_wend();
void wend();
void exec_while();
void input();
char * gpop();
void gpush(char *s);
void greturn();
void gosub();
void scan_labels();
int get_next_label(char *s);
int find_label(CString s);
void label_init();
void exec_goto();
struct for_stack * fpop();
void fpush(struct for_stack *i);
void next();
void exec_for();
void find_eol();
void exec_if();
void print();
int assignment();
void putback();
int find_var(char *s);
void unary(char o,int *r);
void arith(char o,int *r,int *h);
void primitive(int *result);
void level6(int *result);
void level5(int *result);
void level4(int *result);
void level3(int *result);
void level2(int *result);
void get_exp(int *result);
int isdelim2(CString c);
int get_token();
int look_up(CString str);
int iswhite(CString c);
int isdelim1(CString c);
int isdelim(CString c);
void Error(int error);
public:
CIMPUBasicDoc* GetDocument();
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CIMPUBasicView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
// Implementation
public:
int get_logic1(CString op, int y);
int get_logic(int x,CString op,int y);
virtual ~CIMPUBasicView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CIMPUBasicView)
afx_msg void OnProgramRun();
afx_msg void OnResultView();
afx_msg void OnHelpView();
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnSetFocus(CWnd* pOldWnd);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in IMPUBasicView.cpp
inline CIMPUBasicDoc* CIMPUBasicView::GetDocument()
{ return (CIMPUBasicDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IMPUBASICVIEW_H__691156A8_D764_4F60_8C56_B0DA70D8ED2D__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -