Skip to content

Commit c6202fe

Browse files
committed
Parser/CodeGen fixes: rounds 28-30 stress testing
Parser fixes: - extern template: hoisted to preNs (global scope before namespace Processing) - __attribute__((packed)) before struct name now consumed - noexcept after const on member function pointer now consumed - (int[]){...} compound literal: looksLikeCast and parseCast now handle [] array declarators in cast position - using X::Y in statement scope: broadened handler to catch all using forms - using STATEMENT_KEYWORDS: added 'using' so looksLikeDeclaration rejects it - canStartExpression: added sizeof, alignof, decltype, throw, true, false, nullptr, *, +, { so casts like (void)sizeof(...) parse correctly - co_await/co_yield as expressions: parsePrimary now handles both as unary prefix operators (previously only worked as statements) - inline constexpr variable: looksLikeTopLevelDeclarationOrFunction now consumes constexpr/consteval/constinit after inline - Class<T>::method qualified name: after template specialization args, parser now consumes :: and member name for out-of-class specializations - namespace alias: parseNamespaceDecl returns PreprocessorLine for 'namespace A = B::C' form instead of empty NamespaceDecl - parseNamespaceDecl return type changed to TopLevelItem CodeGen fixes: - template<> now emitted for explicit specializations (empty param list with qualified name containing < and ::) - co_return emitted correctly via isCoReturn flag on ReturnStatement - AstStmt: ReturnStatement gains isCoReturn boolean field CppBuild fixes: - extern template hoisted to preNs in both static and active sketch paths - namespace alias deferred (emitted after namespace definitions) - inline variable parsing: constexpr after inline now recognized
1 parent 084024d commit c6202fe

56 files changed

Lines changed: 138448 additions & 74 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CppMode.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ url=https://github.com/processing-cpp/processing.cpp
55
sentence=Write and run Processing sketches in C++.
66
paragraph=C++ Mode lets you write sketches using the familiar Processing API — size(), ellipse(), mouseX, draw() — but compiled to a native binary via g++. Runs on Linux and Windows (via MSYS2). Requires g++ and OpenGL (GLFW + GLEW).
77
version=8
8-
prettyVersion=0.3.0
8+
prettyVersion=0.3.1
99
minRevision=1280
1010
maxRevision=0

dist/processing-cpp-cmake.zip

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

mode.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ url=https://github.com/processing-cpp/processing.cpp
55
sentence=Write and run Processing sketches in C++.
66
paragraph=C++ Mode lets you write sketches using the familiar Processing API — size(), ellipse(), mouseX, draw() — but compiled to a native binary via g++. Runs on Linux, macOS, and Windows (via MSYS2). Requires g++ and OpenGL (GLFW + GLEW).
77
version=8
8-
prettyVersion=0.3.0
8+
prettyVersion=0.3.1
99
minRevision=1280
1010
maxRevision=0

mode/CppMode.jar

1.46 KB
Binary file not shown.

0 commit comments

Comments
 (0)