首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

仿 SQL 查詢分析器的 C# 計算器(十七):UI 邏輯實作、SyntaxException 錯誤定位與多行/選取計算

     編輯:關於C語言

代碼含詳細註釋,此處簡要說明。未選取輸入框文字則執行全部代碼,否則執行選取部分。將要執行代碼依是否多行分解,存入字串陣列。對運算式陣列迴圈計算。實現選取部分計算與多行運算式計算。錯誤定位透過捕獲錯誤:程式定義 Exception 類別,詞法/語法分析出錯時拋出該異常。透過異常類別中的錯誤序號與長度,選中輸入框中錯誤部分。但只能選中第一次發生的錯誤,無法像 VS.NET IDE 捕獲所有錯誤。SyntaxException 定義如下:

public class SyntaxException : Exception
{
    private int m_Index;
    public int Index { get { return m_Index; } }
    private int m_Length;
    public int Length { get { return m_Length; } }
    private string m_Message;
    public override string Message { get { return m_Message; } }

    public SyntaxException(int Index, int Length, string ErrorInformation)
    { this.m_Index = Index; this.m_Length = Length; this.m_Message = ErrorInformation; }
}

單行/多行切換只需設定表單 AcceptButton 為「計算按鈕」,單行狀態下按 Enter 相當於點擊計算。按「F5」鍵執行計算則透過檢測輸入框 KeyUp 事件,釋放 F5 時代碼觸發「計算」按鈕 Click 實現。另有一語法樹分析用於顯示語法樹結構,以更直觀方法驗證分析正確性。樹節點文字調用 TokenRecord.ToString 取得,需顯示其他資訊可自行修改。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved