yaze 0.2.0
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
zeml.h File Reference
#include "imgui/imgui.h"
#include <cctype>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <sstream>
#include <string>
#include <vector>
Include dependency graph for zeml.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  yaze::app::gui::zeml::Token
 
struct  yaze::app::gui::zeml::WidgetAttributes
 Attributes for a widget. More...
 
struct  yaze::app::gui::zeml::Action
 
struct  yaze::app::gui::zeml::Node
 Node for a zeml tree. More...
 

Namespaces

namespace  yaze
 
namespace  yaze::app
 Main namespace for the ImGui application.
 
namespace  yaze::app::gui
 Graphical User Interface (GUI) components for the application.
 
namespace  yaze::app::gui::zeml
 Zelda Editor Markup Language Functions.
 

Enumerations

enum class  yaze::app::gui::zeml::TokenType {
  yaze::app::gui::zeml::Identifier , yaze::app::gui::zeml::String , yaze::app::gui::zeml::OpenBrace , yaze::app::gui::zeml::CloseBrace ,
  yaze::app::gui::zeml::Comma , yaze::app::gui::zeml::EndOfStream
}
 
enum class  yaze::app::gui::zeml::WidgetType {
  yaze::app::gui::zeml::Window , yaze::app::gui::zeml::Button , yaze::app::gui::zeml::Slider , yaze::app::gui::zeml::Text ,
  yaze::app::gui::zeml::Table , yaze::app::gui::zeml::TableSetupColumn , yaze::app::gui::zeml::TableHeadersRow , yaze::app::gui::zeml::TableNextColumn ,
  yaze::app::gui::zeml::CollapsingHeader , yaze::app::gui::zeml::Columns , yaze::app::gui::zeml::Checkbox , yaze::app::gui::zeml::Selectable ,
  yaze::app::gui::zeml::Function , yaze::app::gui::zeml::BeginChild , yaze::app::gui::zeml::BeginMenuBar , yaze::app::gui::zeml::BeginMenu ,
  yaze::app::gui::zeml::BeginTabBar , yaze::app::gui::zeml::BeginTabItem , yaze::app::gui::zeml::MenuItem , yaze::app::gui::zeml::Separator ,
  yaze::app::gui::zeml::HexInputByte , yaze::app::gui::zeml::HexInputWord , yaze::app::gui::zeml::Canvas , yaze::app::gui::zeml::Definition
}
 
enum class  yaze::app::gui::zeml::ActionType { yaze::app::gui::zeml::Click , yaze::app::gui::zeml::Change , yaze::app::gui::zeml::Run }
 

Functions

std::vector< Tokenyaze::app::gui::zeml::Tokenize (const std::string &input)
 Tokenize a zeml string.
 
void yaze::app::gui::zeml::Bind (Node *node, std::function< void()> callback)
 Bind a callback to a node.
 
void yaze::app::gui::zeml::BindAction (Node *node, ActionType type, std::function< void()> callback)
 Bind an action to a node.
 
void yaze::app::gui::zeml::BindSelectable (Node *node, bool *selected, std::function< void()> callback)
 Bind a selectable node.
 
WidgetType yaze::app::gui::zeml::MapType (const std::string &type)
 Map a string to a widget type.
 
void yaze::app::gui::zeml::ParseDefinitions (const std::vector< Token > &tokens, size_t &index, std::map< std::string, Node > &definitions)
 Parse a zeml definition.
 
void yaze::app::gui::zeml::ParseFlags (const WidgetType &type, const std::string &flags, WidgetAttributes &attributes)
 
WidgetAttributes yaze::app::gui::zeml::ParseAttributes (const std::vector< Token > &tokens, size_t &index, const WidgetType &type, const std::map< std::string, void * > &data_bindings={})
 ParseNode attributes for a widget.
 
Node yaze::app::gui::zeml::ParseNode (const std::vector< Token > &tokens, size_t &index, const std::map< std::string, void * > &data_bindings={}, const std::map< std::string, Node > &definitions={})
 Parse a zeml node.
 
Node yaze::app::gui::zeml::Parse (const std::string &yazon_input, const std::map< std::string, void * > &data_bindings={})
 Parse a zeml string.
 
void yaze::app::gui::zeml::Render (Node &node)
 Render a zeml tree.
 
void yaze::app::gui::zeml::ExecuteActions (const std::vector< Action > &actions, ActionType type)
 Execute actions for a node.
 
std::string yaze::app::gui::zeml::LoadFile (const std::string &filename)