aa8a5f174d
Replaced std::exit() with return Carbon::ErrorOr for expected errors like invalid syntax ( #1120 )
...
* Replaced std::exit() with return llvm::Expected/llvm::Error<T> for expected errors like invalid syntax.
* Use llvm::formatv() for formatting lexer error messages.
x
* Addresed merge errors.
* Fixed impl scope.
* Made ErrorBuilder::operator<< nodiscard, to catch code forgetting 'return' in 'return FATAL_COMPILATION_ERROR()'.
* FatalComplationError() -> ParseAndLexContext::RecordLexerError().
Other usages of ERROR_TOKEN in lexer.lpp were actually supposed to be END_OF_FILE.
* Update executable_semantics/syntax/parse_and_lex_context.h
Co-authored-by: Jon Meow <jperkins@google.com >
* Code review fixes.
* Update executable_semantics/syntax/parser.ypp
Co-authored-by: Jon Meow <jperkins@google.com >
* More code review fixes.
* Update executable_semantics/interpreter/type_checker.h
Co-authored-by: Jon Meow <jperkins@google.com >
* Yet more code review fixes...
* Update executable_semantics/syntax/lexer.lpp
Co-authored-by: Jon Meow <jperkins@google.com >
* code review comments
* Update executable_semantics/interpreter/interpreter.cpp
Co-authored-by: Geoff Romer <gromer@google.com >
* Apply suggestions from code review
Co-authored-by: Jon Meow <jperkins@google.com >
* Update executable_semantics/syntax/lexer.lpp
Co-authored-by: Jon Meow <jperkins@google.com >
* code review
* code review
* Apply suggestions from code review
Co-authored-by: Jon Meow <jperkins@google.com >
* formatted code
* review comments
* Switched to the new ErrorOr<V> error implementation
* code review comments
* fixed comment
* restored ostream.h as #976 makes the change unnecesary
* review comments
Co-authored-by: Jon Meow <jperkins@google.com >
Co-authored-by: Geoff Romer <gromer@google.com >
2022-03-22 16:17:04 -04:00
Jon Meow
a9eed3dbf1
Pass the flag instead of using a global. ( #893 )
...
Arguably missed in #769
Note, this is reminding me we have more class members to rename for `_`, but I felt it's best to use the new naming instead of adding more to clean up.
2021-10-19 09:16:57 -07:00
Jon Meow
56dc4ae375
Rename Ptr<T> to Nonnull<T*> ( #832 )
...
Note that ptr.h also includes an enable_if change, to help avoid https://bugs.llvm.org/show_bug.cgi?id=51881
2021-09-16 19:22:57 -07:00
Jon Meow
90f04700e2
Remove global_arena ( #814 )
...
With this, only main.cpp instantiates an arena. Maybe we'll want to split that up more later (e.g., so that the runtime interpreter uses its own arena), but given the intent to have type-checking update the AST, I thought this was a reasonable approach for now in order to avoid ownership complexities.
Fixes #769
2021-09-09 11:00:57 -07:00
Geoff Romer
f931a8cead
Replace all lists with vectors ( #815 )
2021-09-07 09:20:10 -07:00
Jon Meow
a03536a196
Add syntax for package and library ( #792 )
...
Doesn't add much logic, only takes advantage of parser structure for the ordering enforcement.
Note import_nonexistent tests should probably fail, but writing import tests needs a chain of functionality, and I figured I'd just start adding some to validate the syntax (not adding existent imports because that'd require multi-file structure).
2021-09-02 16:01:15 -07:00
Jon Meow
31b4f1e7ac
Move ExecProgram to interpreter/ ( #802 )
...
Seems to make sense since it's the only interpreter/ dependency in syntax/ right now, so this feels like untangling deps.
Fixes #371
2021-09-01 15:22:10 -07:00