Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
koalaman
ShellCheck
提交
b770984d
S
ShellCheck
项目概览
镜像
/
koalaman
/
ShellCheck
上一次同步 10 个月
通知
42
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b770984d
编写于
10月 13, 2022
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Try to parse the inside of traps (fixes #2584)
上级
d9c9e60f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
3 deletion
+18
-3
src/ShellCheck/Parser.hs
src/ShellCheck/Parser.hs
+18
-3
未找到文件。
src/ShellCheck/Parser.hs
浏览文件 @
b770984d
...
...
@@ -2112,6 +2112,7 @@ prop_readSimpleCommand11 = isOk readSimpleCommand "/\\* foo"
prop_readSimpleCommand12
=
isWarning
readSimpleCommand
"elsif foo"
prop_readSimpleCommand13
=
isWarning
readSimpleCommand
"ElseIf foo"
prop_readSimpleCommand14
=
isWarning
readSimpleCommand
"elseif[$i==2]"
prop_readSimpleCommand15
=
isWarning
readSimpleCommand
"trap 'foo
\"
bar' INT"
readSimpleCommand
=
called
"simple command"
$
do
prefix
<-
option
[]
readCmdPrefix
skipAnnotationAndWarn
...
...
@@ -2141,9 +2142,12 @@ readSimpleCommand = called "simple command" $ do
id2
<-
getNewIdFor
id1
let
result
=
makeSimpleCommand
id1
id2
prefix
[
cmd
]
suffix
if
isCommand
[
"source"
,
"."
]
cmd
then
readSource
result
else
return
result
case
()
of
_
|
isCommand
[
"source"
,
"."
]
cmd
->
readSource
result
_
|
isCommand
[
"trap"
]
cmd
->
do
syntaxCheckTrap
result
return
result
_
->
return
result
where
isCommand
strings
(
T_NormalWord
_
[
T_Literal
_
s
])
=
s
`
elem
`
strings
isCommand
_
_
=
False
...
...
@@ -2163,6 +2167,17 @@ readSimpleCommand = called "simple command" $ do
parseProblemAtId
(
getId
cmd
)
ErrorC
1131
"Use 'elif' to start another branch."
_
->
return
()
syntaxCheckTrap
cmd
=
case
cmd
of
(
T_Redirecting
_
_
(
T_SimpleCommand
_
_
(
cmd
:
arg
:
_
)))
->
checkArg
arg
(
getLiteralString
arg
)
_
->
return
()
where
checkArg
_
Nothing
=
return
()
checkArg
arg
(
Just
(
'-'
:
_
))
=
return
()
checkArg
arg
(
Just
str
)
=
do
(
start
,
end
)
<-
getSpanForId
(
getId
arg
)
subParse
start
(
tryWithErrors
(
readCompoundListOrEmpty
>>
verifyEof
)
<|>
return
()
)
str
commentWarning
id
=
parseProblemAtId
id
ErrorC
1127
"Was this intended as a comment? Use # in sh."
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录