| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an issue where in code like this:
```
int foo(float bar) // hello() {}
```
The lexer would match `(float bar) // hello()`
as the parameters of the function `foo`, instead
of just `(float bar)`.
In addition, a similar test case to what was originally
reported in #2208 is added.
|
|
|
|
| |
Detect function with return types of more than a single word length
(like `unsigned int` or `long long`).
|
|
|
|
|
| |
* Fix #1237 cpp whitespace token usage expanded
* Adapt tests change to 3eff56f5
|
|
|
|
| |
The CFamilyLexer was matching whitespace as Text instead of Whitespace.
|
|
* Fix lexing of function names
This fixes #1561.
Add a keywords state that matches inside and outside functions for
keywords.
Before this, when a keyword would appear the lexer would go to the
statements state, in which functions were not matched.
* Add tests for lexing of function names
* Unbreak previous tests
* Allow namespaced names in function statements
Add a second identifiers regex that matces all the previous identifiers
and also '::'.
I took the decision to create a second identifiers regex with '::'
inside, simply because using the old identifiers regex would hurt
performance massively on every solution I tried to craft.
* Add tests for namespaced names in functions
* Unbreak previous tests
* Add support for namespaces in namespace declarations
Add a namespace state that is entered each time the namespace keyword
is matched and lexes all name matches as namespaces.
Cases this approach doesn't cover:
* Namespaces in using declarations.
* Namespaces that prefix names in random code.
Unfortunately, in both of these cases the names before and after '::'
are not always namespaces.
* Add tests for namespace declartions
* Unbreak previous tests
* Tidy functions regex
Remove group nesting that became unneeded after fc56ab8 (the last big
refactor).
* Remove f string usage I introduced by mistake
|