diff --git a/bits/dump-example-parse.txt b/bits/dump-example-parse.txt index a0f3bf7..30324a4 100644 --- a/bits/dump-example-parse.txt +++ b/bits/dump-example-parse.txt @@ -1,99 +1,99 @@ -└─ BODY: 1:0 - ├─ STATEMENT: 1:0 - │ ├─ FUNNAME: 1:0 +└─ BodyNode: 1:0 + ├─ StatementNode: 1:0 + │ ├─ FunctionNameNode: 1:0 │ │ └─ Token(type=WORD, content='cmake_minimum_required', line=1, col=0) - │ ├─ LPAREN: 1:22 + │ ├─ TreeNode: 1:22 │ │ └─ Token(type=LEFT_PAREN, content='(', line=1, col=22) - │ ├─ ARGGROUP: 1:23 - │ │ └─ KWARGGROUP: 1:23 - │ │ ├─ KEYWORD: 1:23 + │ ├─ StandardArgTree: 1:23 + │ │ └─ KeywordGroupNode: 1:23 + │ │ ├─ KeywordNode: 1:23 │ │ │ └─ Token(type=WORD, content='VERSION', line=1, col=23) │ │ ├─ Token(type=WHITESPACE, content=' ', line=1, col=30) - │ │ └─ ARGGROUP: 1:31 - │ │ └─ PARGGROUP: 1:31 - │ │ └─ ARGUMENT: 1:31 + │ │ └─ StandardArgTree: 1:31 + │ │ └─ PositionalGroupNode: 1:31 + │ │ └─ TreeNode: 1:31 │ │ └─ Token(type=UNQUOTED_LITERAL, content='3.5', line=1, col=31) - │ └─ RPAREN: 1:34 + │ └─ TreeNode: 1:34 │ └─ Token(type=RIGHT_PAREN, content=')', line=1, col=34) - ├─ WHITESPACE: 1:35 + ├─ WhitespaceNode: 1:35 │ └─ Token(type=NEWLINE, content='\n', line=1, col=35) - ├─ STATEMENT: 2:0 - │ ├─ FUNNAME: 2:0 + ├─ StatementNode: 2:0 + │ ├─ FunctionNameNode: 2:0 │ │ └─ Token(type=WORD, content='project', line=2, col=0) - │ ├─ LPAREN: 2:7 + │ ├─ TreeNode: 2:7 │ │ └─ Token(type=LEFT_PAREN, content='(', line=2, col=7) - │ ├─ ARGGROUP: 2:8 - │ │ └─ PARGGROUP: 2:8 - │ │ └─ ARGUMENT: 2:8 + │ ├─ StandardArgTree: 2:8 + │ │ └─ PositionalGroupNode: 2:8 + │ │ └─ TreeNode: 2:8 │ │ └─ Token(type=WORD, content='demo', line=2, col=8) - │ └─ RPAREN: 2:12 + │ └─ TreeNode: 2:12 │ └─ Token(type=RIGHT_PAREN, content=')', line=2, col=12) - ├─ WHITESPACE: 2:13 + ├─ WhitespaceNode: 2:13 │ └─ Token(type=NEWLINE, content='\n', line=2, col=13) - ├─ FLOW_CONTROL: 3:0 - │ ├─ STATEMENT: 3:0 - │ │ ├─ FUNNAME: 3:0 + ├─ IfBlockNode: 3:0 + │ ├─ StatementNode: 3:0 + │ │ ├─ FunctionNameNode: 3:0 │ │ │ └─ Token(type=WORD, content='if', line=3, col=0) - │ │ ├─ LPAREN: 3:2 + │ │ ├─ TreeNode: 3:2 │ │ │ └─ Token(type=LEFT_PAREN, content='(', line=3, col=2) - │ │ ├─ ARGGROUP: 3:3 - │ │ │ ├─ PARGGROUP: 3:3 - │ │ │ │ ├─ ARGUMENT: 3:3 + │ │ ├─ ConditionalGroupNode: 3:3 + │ │ │ ├─ PositionalGroupNode: 3:3 + │ │ │ │ ├─ TreeNode: 3:3 │ │ │ │ │ └─ Token(type=WORD, content='FOO', line=3, col=3) │ │ │ │ └─ Token(type=WHITESPACE, content=' ', line=3, col=6) - │ │ │ └─ KWARGGROUP: 3:7 - │ │ │ ├─ KEYWORD: 3:7 + │ │ │ └─ KeywordGroupNode: 3:7 + │ │ │ ├─ KeywordNode: 3:7 │ │ │ │ └─ Token(type=WORD, content='AND', line=3, col=7) │ │ │ ├─ Token(type=WHITESPACE, content=' ', line=3, col=10) - │ │ │ └─ ARGGROUP: 3:11 - │ │ │ └─ PARENGROUP: 3:11 - │ │ │ ├─ LPAREN: 3:11 + │ │ │ └─ ConditionalGroupNode: 3:11 + │ │ │ └─ ParenGroupNode: 3:11 + │ │ │ ├─ TreeNode: 3:11 │ │ │ │ └─ Token(type=LEFT_PAREN, content='(', line=3, col=11) - │ │ │ ├─ ARGGROUP: 3:12 - │ │ │ │ ├─ PARGGROUP: 3:12 - │ │ │ │ │ ├─ ARGUMENT: 3:12 + │ │ │ ├─ ConditionalGroupNode: 3:12 + │ │ │ │ ├─ PositionalGroupNode: 3:12 + │ │ │ │ │ ├─ TreeNode: 3:12 │ │ │ │ │ │ └─ Token(type=WORD, content='BAR', line=3, col=12) │ │ │ │ │ └─ Token(type=WHITESPACE, content=' ', line=3, col=15) - │ │ │ │ └─ KWARGGROUP: 3:16 - │ │ │ │ ├─ KEYWORD: 3:16 + │ │ │ │ └─ KeywordGroupNode: 3:16 + │ │ │ │ ├─ KeywordNode: 3:16 │ │ │ │ │ └─ Token(type=WORD, content='OR', line=3, col=16) │ │ │ │ ├─ Token(type=WHITESPACE, content=' ', line=3, col=18) - │ │ │ │ └─ ARGGROUP: 3:19 - │ │ │ │ └─ PARGGROUP: 3:19 - │ │ │ │ └─ ARGUMENT: 3:19 + │ │ │ │ └─ ConditionalGroupNode: 3:19 + │ │ │ │ └─ PositionalGroupNode: 3:19 + │ │ │ │ └─ TreeNode: 3:19 │ │ │ │ └─ Token(type=WORD, content='BAZ', line=3, col=19) - │ │ │ └─ RPAREN: 3:22 + │ │ │ └─ TreeNode: 3:22 │ │ │ └─ Token(type=RIGHT_PAREN, content=')', line=3, col=22) - │ │ └─ RPAREN: 3:23 + │ │ └─ TreeNode: 3:23 │ │ └─ Token(type=RIGHT_PAREN, content=')', line=3, col=23) - │ ├─ BODY: 3:24 - │ │ ├─ WHITESPACE: 3:24 + │ ├─ BodyNode: 3:24 + │ │ ├─ WhitespaceNode: 3:24 │ │ │ ├─ Token(type=NEWLINE, content='\n', line=3, col=24) │ │ │ └─ Token(type=WHITESPACE, content=' ', line=4, col=0) - │ │ ├─ STATEMENT: 4:2 - │ │ │ ├─ FUNNAME: 4:2 + │ │ ├─ StatementNode: 4:2 + │ │ │ ├─ FunctionNameNode: 4:2 │ │ │ │ └─ Token(type=WORD, content='add_library', line=4, col=2) - │ │ │ ├─ LPAREN: 4:13 + │ │ │ ├─ TreeNode: 4:13 │ │ │ │ └─ Token(type=LEFT_PAREN, content='(', line=4, col=13) - │ │ │ ├─ ARGGROUP: 4:14 - │ │ │ │ ├─ PARGGROUP: 4:14 - │ │ │ │ │ ├─ ARGUMENT: 4:14 + │ │ │ ├─ ArgGroupNode: 4:14 + │ │ │ │ ├─ PositionalGroupNode: 4:14 + │ │ │ │ │ ├─ TreeNode: 4:14 │ │ │ │ │ │ └─ Token(type=WORD, content='hello', line=4, col=14) │ │ │ │ │ └─ Token(type=WHITESPACE, content=' ', line=4, col=19) - │ │ │ │ └─ PARGGROUP: 4:20 - │ │ │ │ └─ ARGUMENT: 4:20 + │ │ │ │ └─ PositionalGroupNode: 4:20 + │ │ │ │ └─ TreeNode: 4:20 │ │ │ │ └─ Token(type=UNQUOTED_LITERAL, content='hello.cc', line=4, col=20) - │ │ │ └─ RPAREN: 4:28 + │ │ │ └─ TreeNode: 4:28 │ │ │ └─ Token(type=RIGHT_PAREN, content=')', line=4, col=28) - │ │ └─ WHITESPACE: 4:29 + │ │ └─ WhitespaceNode: 4:29 │ │ └─ Token(type=NEWLINE, content='\n', line=4, col=29) - │ └─ STATEMENT: 5:0 - │ ├─ FUNNAME: 5:0 + │ └─ StatementNode: 5:0 + │ ├─ FunctionNameNode: 5:0 │ │ └─ Token(type=WORD, content='endif', line=5, col=0) - │ ├─ LPAREN: 5:5 + │ ├─ TreeNode: 5:5 │ │ └─ Token(type=LEFT_PAREN, content='(', line=5, col=5) - │ ├─ ARGGROUP: 0:0 - │ └─ RPAREN: 5:6 + │ ├─ ConditionalGroupNode: 0:0 + │ └─ TreeNode: 5:6 │ └─ Token(type=RIGHT_PAREN, content=')', line=5, col=6) - └─ WHITESPACE: 5:7 + └─ WhitespaceNode: 5:7 └─ Token(type=NEWLINE, content='\n', line=5, col=7) diff --git a/bits/lint-out.cmake b/bits/lint-out.cmake index c4ad8c3..8f6ac62 100644 --- a/bits/lint-out.cmake +++ b/bits/lint-out.cmake @@ -13,11 +13,11 @@ cmakelang/lint/test/expect_lint.cmake:24,10: [C0103] Invalid argument name "LOOP cmakelang/lint/test/expect_lint.cmake:30,00: [C0306] Tab-policy violation. Found tab but should be space cmakelang/lint/test/expect_lint.cmake:34,01: [C0307] Bad indentation: message - ^---- + ^----BodyNode: 1:0->IfBlockNode: 33:0->BodyNode: 33:8->StatementNode: 34:1->FunctionNameNode: 34:1 cmakelang/lint/test/expect_lint.cmake:38,03: [C0307] Bad indentation: message - ^---- + ^----BodyNode: 1:0->IfBlockNode: 37:0->BodyNode: 37:8->StatementNode: 38:3->FunctionNameNode: 38:3 cmakelang/lint/test/expect_lint.cmake:43,04: [C0103] Invalid CACHE variable name "gtest_force_shared_crt" doesn't match `[A-Z][0-9A-Z_]+` cmakelang/lint/test/expect_lint.cmake:46,27: [E1120] Missing required positional argument diff --git a/bits/lintimpl-table.rst b/bits/lintimpl-table.rst index 0c9aa0f..f893714 100644 --- a/bits/lintimpl-table.rst +++ b/bits/lintimpl-table.rst @@ -25,7 +25,7 @@ +-------+--------------------------------------------------------------------+ |`C0306`| Tab-policy violation. Found {:s} but should be {:s} | +-------+--------------------------------------------------------------------+ -|`C0307`| Bad indentation: {:s}{:s} {:s}^---- | +|`C0307`| Bad indentation: {:s}{:s} {:s}^----{} | +-------+--------------------------------------------------------------------+ |`C0321`| Multiple statements on a single line | +-------+--------------------------------------------------------------------+ diff --git a/lint-implemented.rst b/lint-implemented.rst index 3f9f7e5..6617c5a 100644 --- a/lint-implemented.rst +++ b/lint-implemented.rst @@ -347,7 +347,7 @@ message Bad indentation: {:s}{:s} - {:s}^---- + {:s}^----{}