#include "widgets.h" #include #include "absl/status/status.h" #include "app/core/constants.h" namespace yaze { namespace gui { namespace widgets { TextEditor::LanguageDefinition GetAssemblyLanguageDef() { TextEditor::LanguageDefinition language_65816; for (auto &k : app::core::kKeywords) language_65816.mKeywords.emplace(k); for (auto &k : app::core::kIdentifiers) { TextEditor::Identifier id; id.mDeclaration = "Built-in function"; language_65816.mIdentifiers.insert(std::make_pair(std::string(k), id)); } language_65816.mTokenRegexStrings.push_back( std::make_pair( "[ \\t]*#[ \\t]*[a-zA-Z_]+", TextEditor::PaletteIndex::Preprocessor)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "L?\\\"(\\\\.|[^\\\"])*\\\"", TextEditor::PaletteIndex::String)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "\\'\\\\?[^\\']\\'", TextEditor::PaletteIndex::CharLiteral)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)([eE][+-]?[0-9]+)?[fF]?", TextEditor::PaletteIndex::Number)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "[+-]?[0-9]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "0[0-7]+[Uu]?[lL]?[lL]?", TextEditor::PaletteIndex::Number)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "0[xX][0-9a-fA-F]+[uU]?[lL]?[lL]?", TextEditor::PaletteIndex::Number)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "[a-zA-Z_][a-zA-Z0-9_]*", TextEditor::PaletteIndex::Identifier)); language_65816.mTokenRegexStrings.push_back( std::make_pair( "[\\[\\]\\{\\}\\!\\%\\^\\&\\*\\(\\)\\-\\+\\=\\~\\|\\<\\>\\?\\/" "\\;\\,\\.]", TextEditor::PaletteIndex::Punctuation)); language_65816.mCommentStart = "/*"; language_65816.mCommentEnd = "*/"; language_65816.mSingleLineComment = ";"; language_65816.mCaseSensitive = false; language_65816.mAutoIndentation = true; language_65816.mName = "65816"; return language_65816; } } // namespace widgets } // namespace gui } // namespace yaze