Example #1
0
 //------------------------------------------------------------------
 void code_colorer::color_code(const char_type* p)
 {
     while(*p)
     {
         unsigned len;
         if(is_block_comment(p, &len))
         {
             m_result.add(keyword_rem, p, len, true);
             p += len;
         }
         else if(is_line_comment(p, &len))
         {
             m_result.add(keyword_rem, p, len, true);
             p += len;
         }
         else if(is_string_literal(p, &len))
         {
             m_result.add(keyword_str, p, len, true);
             p += len;
         }
         else if(is_number(p, &len))
         {
             m_result.add(keyword_num, p, len, true);
             p += len;
         }
         else if(is_operator(p, &len))
         {
             m_result.add(keyword_op, p, len, true);
             p += len;
         }
         else if(is_identifier(p, &len))
         {
             const keyword* kw = 0;
             if     (is_keyword(keyword_kw1_suffix, p, len)) kw = &keyword_kw1;
             else if(is_keyword(keyword_kw2_suffix, p, len)) kw = &keyword_kw2;
             else if(is_keyword(keyword_kw3_suffix, p, len)) kw = &keyword_kw3;
             else if(is_keyword(keyword_kw4_suffix, p, len)) kw = &keyword_kw4;
             if(kw)
             {
                 m_result.add(backslash);
                 m_result.add(kw->name, kw->len);
                 m_result.add(open_brace);
             }
             m_result.add(p, len, true);
             if(kw)
             {
                 m_result.add(close_brace);
             }
             p += len;
         }
         else
         {
             m_result.add(*p++);
         }
     }
 }
Example #2
0
codelist_entry *process_line(){
	eat_whitespace();
	codelist_entry *ret = NULL;
	printf("Processing line: %s -- len: %d\n", input_file_stack->line_buffer, (int)strlen(input_file_stack->line_buffer));
	if(!is_line_blank() && !is_line_comment()){
		if(is_line_label()){
			printf("Line is label\n");
			return process_label();
		}else if(is_line_dat()){
			printf("Line is data\n");
			return process_dat();
		}else if(is_line_include()){
			printf("Line is include\n");
			open_input_m4(get_include_filename());
			return NULL;
		}else{
			printf("Processing code line\n");
			return process_op();
		}
	}else{
		printf("Line comment/empty/blank\n");
	}
	return ret;
}