aboutsummaryrefslogtreecommitdiffhomepage
path: root/ptx_parser
diff options
context:
space:
mode:
Diffstat (limited to 'ptx_parser')
-rw-r--r--ptx_parser/src/lib.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/ptx_parser/src/lib.rs b/ptx_parser/src/lib.rs
index c9b929a..1ea2d71 100644
--- a/ptx_parser/src/lib.rs
+++ b/ptx_parser/src/lib.rs
@@ -400,6 +400,7 @@ fn directive<'a, 'input>(
) -> PResult<Option<ast::Directive<'input, ast::ParsedOperand<&'input str>>>> {
with_recovery(
alt((
+ // When adding a new variant here remember to add its first token into recovery parser down below
function.map(|(linking, func)| Some(ast::Directive::Method(linking, func))),
file.map(|_| None),
section.map(|_| None),
@@ -407,7 +408,14 @@ fn directive<'a, 'input>(
.map(|((linking, var), _)| Some(ast::Directive::Variable(linking, var))),
)),
take_till(1.., |(token, _)| match token {
- Token::DotVisible | Token::DotFile | Token::DotSection => true,
+ // visibility
+ Token::DotExtern | Token::DotVisible | Token::DotWeak
+ // methods
+ | Token::DotFunc | Token::DotEntry
+ // module variables
+ | Token::DotGlobal | Token::DotConst | Token::DotShared
+ // other sections
+ | Token::DotFile | Token::DotSection => true,
_ => false,
}),
PtxError::UnrecognizedDirective,