Serenity Operating System
at master 30 lines 795 B view raw
1/* 2 * Copyright (c) 2021-2022, the SerenityOS developers. 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <AK/Try.h> 8#include <LibCore/ArgsParser.h> 9#include <LibCore/File.h> 10#include <LibCpp/Lexer.h> 11#include <LibMain/Main.h> 12 13ErrorOr<int> serenity_main(Main::Arguments arguments) 14{ 15 Core::ArgsParser args_parser; 16 StringView path; 17 args_parser.add_positional_argument(path, "Cpp File", "cpp-file", Core::ArgsParser::Required::Yes); 18 args_parser.parse(arguments); 19 20 auto file = TRY(Core::File::open(path, Core::File::OpenMode::Read)); 21 auto content = TRY(file->read_until_eof()); 22 StringView content_view(content); 23 24 Cpp::Lexer lexer(content); 25 lexer.lex_iterable([](auto token) { 26 outln("{}", token.to_deprecated_string()); 27 }); 28 29 return 0; 30}