summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCpp/Parser.h
AgeCommit message (Collapse)Author
2021-05-09LibCpp: Rename m_definitions=>m_preprocessor_definitionsItamar
2021-04-23AK: Rename adopt() to adopt_ref()Andreas Kling
This makes it more symmetrical with adopt_own() (which is used to create a NonnullOwnPtr from the result of a naked new.)
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-19LibCpp: Support parsing class declarationsItamar
2021-04-06LibCpp: Add TemplatizedNameItamar
This type represents templatized names, and replaces our previous use of 'TemplatizedType' and 'TemplatizedFunctionCall'. Also, we now parse function calls as secondary expressions.
2021-04-06LibCpp: Introduce DummyASTNodeItamar
This allows us to use pase_* methods inside match_* methods, without adding any actual AST nodes to the m_nodes list.
2021-04-06LibCpp: Parse C-Style parse expressionsItamar
2021-04-06LibCpp: Parse braced initialization listItamar
2021-04-06LibCpp: Parse sizeof() expressionItamar
2021-04-06LibCpp: Parse C++ cast expressionsItamar
parse static_cast, reinterpret_cast, dynamic_cast & const_cast
2021-04-06LibCpp: Support parsing templatized function callsItamar
2021-04-06LibCpp: Add AST::NameItamar
A Name node is basically an identifier with an optional scope, e.g Core::File.
2021-04-06LibCpp: Parse templatized typesItamar
We can now parse things like Vector<int>
2021-04-06LibCpp: Support parsing function qualifiersItamar
2021-04-06LibCpp: Parse variable declarations in global scopeItamar
2021-03-23HackStudio+LanguageServers/Cpp: Show scope of symbols in LocatorItamar
2021-03-23LibCpp: Parse Namespace declarationItamar
Also, remove unused State::Context
2021-03-13LanguageServers/Cpp: Support jumping to declaration of preprocessorItamar
.. definitions.
2021-03-13LibCpp: Parser no longer holds the program's sourceItamar
After we moved to storing the text of each token in the token itself, we no longer have to store the source of the program in the Parser. This makes more sense because the parser should deal with tokens, not with raw source code.
2021-03-13LibCpp: Implement Parser::text_in_range using text of tokensItamar
It was previously implemented by directly iterating over the program's source.
2021-03-13LibCpp: Remove node_span_size, add index_of_node_atItamar
2021-03-13LibCpp: Replace defined preprocessor values when parsingItamar
2021-03-02LibCpp: Parse ellipsisItamar
We can now parse the printf function declaration :^)
2021-03-02LibCpp: Consume attribute specification when parsingItamar
Consume __atribute__(...), without actually parsing its content.
2021-03-02LibCpp: Parse type qualifiersItamar
2021-02-20LibCpp: Store filename in ASTNodesItamar
As part of the position information, we now also store the filename the ASTNode belongs to.
2021-02-13LibCpp: Fix lexing & parsing of non-terminated stringsItamar
2021-02-10LanguageServers/Cpp: Autocomplete declarations from included headersItamar
We now also look at the available declarations from included header files when autocompleting names. Additionally, you can now request autocomplete on an empty token, which brings up all available names, starting from the inner-most scope.
2021-02-08LibCpp: Parse If statementsItamar
2021-01-27LibCpp: Add the beginning of a C++ parserItamar
This parser will be used by the C++ langauge server to provide better auto-complete (& maybe also other things in the future). It is designed to be error tolerant, and keeps track of the position spans of the AST nodes, which should be useful later for incremental parsing.