single comment work

This commit is contained in:
BADIM-PC\Vadim 2017-12-20 22:06:43 +03:00
parent d77aa85d4e
commit e449656d57
1 changed files with 21 additions and 109 deletions

View File

@ -404,17 +404,17 @@ static bool isWord(char symbol) {return isLetter(symbol) || isNumber(symbol);}
#include <ctype.h>
static inline bool is_lineend(char c) {return c == '\n' || c == '\0';}
static void parse(const char* start, u8* color)
{
const char* ptr = start;
const char* blockCommentStart = NULL;
const char* blockStringStart = NULL;
const char* singleCommentStart = NULL;
static const char BlockCommentStart[] = "--[[";
static const char BlockCommentEnd[] = "]]";
static const char SingleCommentStart[] = "--";
while(true)
{
@ -458,6 +458,13 @@ static void parse(const char* start, u8* color)
memset(color + (blockStringStart - start), getConfig()->theme.code.string, ptr - blockStringStart);
blockStringStart = NULL;
}
else if(singleCommentStart)
{
while(*ptr != '\0' && *ptr != '\n')ptr++;
memset(color + (singleCommentStart - start), getConfig()->theme.code.comment, ptr - singleCommentStart);
singleCommentStart = NULL;
}
else
{
s32 blockCommentStartSize = strlen(BlockCommentStart);
@ -477,79 +484,24 @@ static void parse(const char* start, u8* color)
}
else
{
// do other stuff
s32 singleCommentStartSize = strlen(SingleCommentStart);
if(c == SingleCommentStart[0] && memcmp(ptr, SingleCommentStart, singleCommentStartSize) == 0)
{
singleCommentStart = ptr;
ptr += singleCommentStartSize;
continue;
}
else
{
// do other stuff
}
}
}
}
// static const char Comment = '-';
// const char* singleCommentStart = NULL;
// if(singleCommentStart)
// {
// if(is_lineend(c))
// {
// memset(color + (singleCommentStart - start), getConfig()->theme.code.comment, ptr - singleCommentStart);
// singleCommentStart = NULL;
// }
// }
// else
// {
// if(c == Comment && ptr > start && *(ptr-1) == Comment)
// {
// singleCommentStart = ptr-1;
// }
// else
// {
// // if(!isprint(c))
// // {
// // digitStart = NULL;
// // ptr++;
// // continue;
// // }
// }
// }
if(!c) break;
// const char* digitStart = NULL;
// bool digit = false;
// if(digitStart)
// {
// if(digitStart[0] == '0' && digitStart[1] == 'x')
// {
// if(ptr - digitStart <= 2)
// digit = true;
// else if(ptr - digitStart > 2 && isxdigit(c))
// digit = true;
// else digitStart = NULL;
// }
// else if(isdigit(c))
// {
// digit = true;
// }
// else if(c == '.')
// {
// digit = true;
// }
// else
// {
// digitStart = NULL;
// }
// }
// else
// {
// if(isdigit(c))
// {
// digitStart = ptr;
// digit = true;
// }
// }
// if(digit) color[ptr - start] = getConfig()->theme.code.number;
ptr++;
}
}
@ -560,46 +512,6 @@ static void parseSyntaxColor(Code* code)
parse(code->src, code->colorBuffer);
// u8* color = code->colorBuffer;
// const char* ptr = code->src;
// char* digitStart = NULL;
// while(true)
// {
// char c = *ptr;
// if(!c) break;
// if(digitStart)
// {
// if(isxdigit(c))
// {
// *color = getConfig()->theme.code.number;
// }
// else
// }
// else
// {
// if(isdigit(c))
// {
// *color = getConfig()->theme.code.number;
// if(digitStart == NULL)
// {
// digitStart = ptr;
// }
// }
// else
// {
// digitStart = NULL;
// }
// }
// ptr++;
// color++;
// }
// switch(code->tic->api.get_script(code->tic))
// {
// case tic_script_moon: