AutoIt 語法檢查器 (Au3Check)
語法檢查完整語言.
檢查所有使用的符號:
報告使用非定義宏錯誤.
如果變量在定義之前使用, Au3Check 將發(fā)出警告.
這時程序可能仍然是正確的, 如下所示:
For $i=1 To 2
If $i=2 Then msgbox(0, "確定", $hello);
Local $hello = "再見"
Next
然而, 這不是良好的編程風(fēng)格, Au3Check 將發(fā)出警告: $hello is possible used before it
is declared ($hello 可能是聲明之前已使用).
同樣的, 全局變量最好不要在聲明之前使用.
如果使用高級代碼, 也會出現(xiàn)警告.
如果變量在使用前沒有明確的直接或間接聲明, Au3Check 都將發(fā)出錯誤警告.
函數(shù)可以在定義后不調(diào)用. Au3Check
檢查被調(diào)用函數(shù)參數(shù)的正確編號.
同時還檢查 ByRef 調(diào)用的參數(shù)和變量 (不能是左值[注:賦值符號左邊值], 表達式).
最后報告非定義的函數(shù).
要管理一些警告/錯誤, 不能避免可以包含在該腳本中的一些具體命令.
命令
--------------
可用于插件(plugin)函數(shù), 如下例:
#ignoreFunc PluginFunc1
Local $handle = PluginOpen("example.dll")
PluginFunc1(0.1, 0.2) ; 將調(diào)用有 2 個參數(shù)的插件(plugin)函數(shù)
PluginClose($handle)
可用于插件(plugin)函數(shù), 如下例:
Func Test_Numparams($v1 = 0, $v2 = 0, $v3 = 0,
$v4 = 0, $v5 = 0, $v6 = 0, $v7 = 0, $v8 = 0, $v9 = 0)
#forceref $v1, $v2, $v3, $v4, $v5, $v6, $v7, $v8, $v9
Local $val
For $i = 1 To @NumParams
$val &= Eval("v" & $i) & " "
Next
MsgBox(0, "@NumParams 示例", "@NumParams =" & @NumParams &
@CRLF & @CRLF & $val)
EndFunc
可用于 Assign() 函數(shù)后面, 如下例:
$n = Assign("y", 3)
#forcedef $y
$n = $y ;===> $y = 3
此命令行實用程序可以作為編輯器附加調(diào)用. 它與 AutoIt3.exe 在同一目錄.
SciTe4AutoIt3 編輯器提供了這樣的環(huán)境.
用法
--------
-q : quiet (only error/warn output) -
- - 靜態(tài) (僅輸出錯誤/警告)
-d : 等價于 Opt("MustDeclareVars", 1)
-w 1: already included file (on) - - - 已包含文件 (打開)
-w 2: missing #comments-end (on) - - - 缺少 #comments-end (打開)
-w 3: already declared var (off) - - - 變量已聲明 (關(guān)閉)
-w 4: local var used in global scope (off) - - - 局部變量在全局范圍內(nèi)使用
(關(guān)閉)
-w 5: local var declared but not used (off) - - - 本地變量已聲明, 但未使用
(關(guān)閉)
-w 6: warn when using Dim (off) - - - 使用 Dim 時警告 (關(guān)閉)
-w 7: warn when passing Const or expression on ByRef param(s) (on)
- - - 傳遞常量或表達式到 ByRef 時警告 (打開)
-I dir: additional directories for searching include files - - -
搜索其他目錄的包含文件
-v 1: show include paths/files (off) - - - 顯示包含路徑/文件 (關(guān)閉)
-v 2: show lexer tokens (off) - - - 顯示詞法標(biāo)記 (關(guān)閉)
-v 3: show unreferenced UDFs and global variables (off) - - - 顯示未引用
UDF 和全局變量 (關(guān)閉)
退出代碼:
0: 成功: 沒有錯誤或警告
1: 警告
2: 語法錯誤
3: 使用或輸入錯誤
如何不檢查
--------------------------
基本運行信息:
- 不檢查數(shù)組維數(shù), 或索引. 這只能是完成運行時.
- 邏輯錯誤, 函數(shù)的非法參數(shù), 與除數(shù)為 0.