16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-19 04:19:19 +02:00
Files
maszyna/eu07-parser/include/eu07/scene/lua.hpp
2026-06-13 15:43:44 +02:00

32 lines
764 B
C++

#pragma once
// https://wiki.eu07.pl/index.php?title=Dyrektywa_lua
// lua file
#include <eu07/scene/cursor.hpp>
#include <eu07/scene/detail/parse.hpp>
#include <eu07/scene/context.hpp>
#include <eu07/scene/match.hpp>
namespace eu07::scene::lua {
[[nodiscard]] inline bool parse(TokenStream& stream, ParseContext& ctx) {
if (stream.empty() || !isKeyword(stream.peek().value, "lua")) {
return false;
}
DirectiveBlock block;
block.line = stream.consume().sourceLine;
const std::size_t anchor = stream.checkpoint();
detail::ParseSession session(stream, block, anchor);
if (!session.empty()) {
session.take();
}
ctx.document.lua.push_back(std::move(block));
return true;
}
} // namespace eu07::scene::lua