Skip to content

Feat/parsing errors context#535

Merged
SuperFola merged 8 commits into
devfrom
feat/parsing-errors-context
May 13, 2025
Merged

Feat/parsing errors context#535
SuperFola merged 8 commits into
devfrom
feat/parsing-errors-context

Conversation

@SuperFola
Copy link
Copy Markdown
Member

Description

Improve error messages by adding context for the error, showing the node we are parsing that caused the error.

Checklist

  • I have read the Contributor guide
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation if needed
  • I have added tests that prove my fix/feature is working
  • New and existing tests pass locally with my changes

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 11, 2025

Static analysis report

Lizard report

Listing only functions with cyclomatic complexity >= 15 or NLOC >= 100 or parameters >= 6.

Filename Start line:end line Function name Parameters NLOC CCN
src/arkreactor/VM/VM.cpp 330:1587 Ark::VM::safeRun 3 1046 212
src/arkreactor/Compiler/Macros/Processor.cpp 239:617 Ark::internal::MacroProcessor::evaluate 3 355 125
src/arkreactor/Exceptions.cpp 87:290 Ark::Diagnostics::makeContext 9 148 56
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 485:663 Ark::internal::ASTLowerer::handleCalls 5 146 44
include/Ark/Compiler/AST/Parser.hpp 104:193 Ark::internal::ARK_APIParser::string 0 87 32
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 163:274 Ark::internal::NameResolutionPass::visitKeyword 3 93 32
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 127:231 Ark::internal::ASTLowerer::compileExpression 5 86 27
src/arkreactor/Compiler/Macros/Processor.cpp 102:185 Ark::internal::MacroProcessor::processNode 3 61 27
src/arkreactor/Compiler/AST/Parser.cpp 282:418 Ark::internal::Parser::import_ 0 109 23
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 55:161 Ark::internal::NameResolutionPass::visit 2 87 23
src/arkreactor/Compiler/Lowerer/ASTLowerer.cpp 257:315 Ark::internal::ASTLowerer::compileListInstruction 4 48 22
src/arkreactor/VM/VM.cpp 1692:1798 Ark::VM::backtrace 3 92 20
src/arkreactor/Compiler/Macros/Executors/Function.cpp 16:88 Ark::internal::FunctionExecutor::applyMacro 2 55 17
src/arkreactor/Compiler/Macros/Processor.cpp 699:738 Ark::internal::MacroProcessor::isConstEval 1 35 16
src/arkreactor/Exceptions.cpp 292:303 Ark::Diagnostics::helper 9 11 2
Report about files you didn't modify in this PR
Filename Start line:end line Function name Parameters NLOC CCN
src/arkreactor/Compiler/BytecodeReader.cpp 274:557 Ark::BytecodeReader::display 4 241 95
src/arkscript/JsonCompiler.cpp 27:260 JsonCompiler::_compile 1 200 36
src/arkscript/main.cpp 17:346 main 2 284 31
src/arkreactor/Compiler/AST/Node.cpp 233:306 Ark::internal::Node::debugPrint 1 64 24
src/arkreactor/TypeChecker.cpp 110:194 Ark::types::generateError 5 72 24
include/utf8.hpp 138:184 utf8::isValid 1 44 21
src/arkreactor/Compiler/AST/Optimizer.cpp 33:83 Ark::internal::Optimizer::countAndPruneDeadCode 1 42 20
src/arkreactor/TypeChecker.cpp 28:108 Ark::types::displayContract 4 70 19
src/arkscript/REPL/Utils.cpp 52:184 Ark::internal::getColorPerKeyword 0 110 19
src/arkreactor/Compiler/AST/Node.cpp 160:231 Ark::internal::Node::repr 0 59 18
src/arkreactor/Compiler/NameResolution/StaticScope.cpp 68:109 Ark::internal::NamespaceScope::get 2 32 18
src/arkreactor/VM/Value.cpp 67:127 Ark::Value::toString 1 48 18
include/Ark/Compiler/AST/Predicates.hpp 132:156 Ark::internal::IsSymbol::operator ( ) 1 24 16
src/arkscript/Formatter.cpp 168:224 Formatter::format 3 53 16

CppCheck report

Filename Line Type Description
src/arkreactor/Compiler/NameResolution/NameResolutionPass.cpp 143 style Consider using std::find_if algorithm instead of a raw loop.
Report files about files you didn't modify in this PR
Filename Line Type Description
src/arkreactor/Compiler/BytecodeReader.cpp 440 style struct member 'Arg::kind' is never used.
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 18 performance Variable 'm_ruleset_two' is assigned in constructor body. Consider performing initialization in initialization list.
src/arkreactor/Compiler/IntermediateRepresentation/IROptimizer.cpp 12 style struct member 'EntityWithOffset::offset' is never used.

@coveralls
Copy link
Copy Markdown

coveralls commented May 11, 2025

Coverage Status

coverage: 86.726% (+0.3%) from 86.474%
when pulling 65f5888 on feat/parsing-errors-context
into 3f1c6e9 on dev.

@SuperFola SuperFola force-pushed the feat/parsing-errors-context branch from fa81c88 to ed7e6dd Compare May 11, 2025 14:22
@SuperFola SuperFola force-pushed the feat/parsing-errors-context branch from ed7e6dd to 38bca0a Compare May 11, 2025 14:23
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 11, 2025

Fuzzing report

/usr/local/bin/afl-whatsup status check tool for afl-fuzz by Michal Zalewski

Summary stats

    Fuzzers alive : 0
   Dead or remote : 1 (included in stats)
   Total run time : 5 minutes, 0 seconds
      Total execs : 41 thousands
 Cumulative speed : 136 execs/sec
    Pending items : 131 faves, 1086 total
 Coverage reached : 13.10%
    Crashes saved : 0
      Hangs saved : 0

Cycles without finds : 0
Time without finds : 0

[+] Captured 44630 tuples (map size 206795, highest value 255, total values 368072692) in '/dev/null'.
[+] A coverage of 44630 edges were achieved out of 206848 existing (21.58%) with 1096 input files.

SuperFola added 2 commits May 12, 2025 19:32
… while importing didn't show the correct path to the file
…ro fails, to show the macro we were expanding and what failed
@SuperFola SuperFola merged commit 3c01309 into dev May 13, 2025
23 checks passed
@SuperFola SuperFola deleted the feat/parsing-errors-context branch May 13, 2025 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants