X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/2c1d569a0ed9ddd14d3d1d73ee8be776e0889d35..b101f7547000aaa1354792aabc459de7cc9e91de:/Highlight.cpp?ds=sidebyside diff --git a/Highlight.cpp b/Highlight.cpp index 3e8aa7b..a2926d3 100644 --- a/Highlight.cpp +++ b/Highlight.cpp @@ -1,5 +1,5 @@ -/* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2015 Jay Freeman (saurik) +/* Cycript - The Truly Universal Scripting Language + * Copyright (C) 2009-2016 Jay Freeman (saurik) */ /* GNU Affero General Public License, Version 3 {{{ */ @@ -19,12 +19,11 @@ **/ /* }}} */ +#include "Code.hpp" +#include "Driver.hpp" #include "Highlight.hpp" -#include "Parser.hpp" -#include "Cycript.tab.hh" -#include "Driver.hpp" -#include "Code.hpp" +bool CYLexerHighlight(hi::Value &highlight, CYLocation &location, void *scanner); static void Skip(const char *data, size_t size, std::ostream &output, size_t &offset, CYPosition ¤t, CYPosition target) { while (current.line != target.line || current.column != target.column) { @@ -35,9 +34,9 @@ static void Skip(const char *data, size_t size, std::ostream &output, size_t &of _assert(current.line < target.line || current.line == target.line && current.column < target.column); if (next == '\n') - current.lines(); + current.Lines(); else - current.columns(); + current.Columns(); } } @@ -60,18 +59,18 @@ _visible void CYLexerHighlight(const char *data, size_t size, std::ostream &outp CYStream stream(data, data + size); CYDriver driver(pool, stream); - driver.commented_ = true; + driver.highlight_ = true; size_t offset(0); CYPosition current; - YYSTYPE value; + hi::Value highlight; CYLocation location; - while (cylex(&value, &location, driver.scanner_) != 0) { + while (CYLexerHighlight(highlight, location, driver.scanner_)) { CYColor color; - switch (value.highlight_) { + switch (highlight) { case hi::Comment: color = CYColor(true, 30); break; case hi::Constant: color = CYColor(false, 31); break; case hi::Control: color = CYColor(false, 33); break;