예제 #1
0
element * parse_markdown_with_metadata(char *string, int extensions, element *reference_list, element *note_list, element *label_list) {

    char *oldcharbuf;
    syntax_extensions = extensions;
    references = reference_list;
    notes = note_list;
    labels = label_list;

    oldcharbuf = charbuf;
    charbuf = string;

	start_time = clock();

    yyparsefrom(yy_DocWithMetaData);
    charbuf = oldcharbuf;          /* restore charbuf to original value */

    /* reset start_time for subsequent passes */
    start_time = 0;
    
    if (parse_aborted) {
        parse_aborted = 0;
        free_element_list(parse_result);
        return NULL;
    }

    return parse_result;

}
element * parse_markdown_for_opml(char *string, int extensions) {

	yycontext *context = create_parsing_context(string, extensions, NULL, NULL, NULL);
    yyparsefrom(context, yy_DocForOPML);
	element *parse_result = context->state->parse_result;
	
	free_parsing_context(context);

    return parse_result;
}
element * parse_metadata_only(char *string, int extensions) {

	yycontext *context = create_parsing_context(string, extensions, NULL, NULL, NULL);

    yyparsefrom(context, yy_MetaDataOnly);
	element *parse_result = context->state->parse_result;
	free_parsing_context(context);
	
    return parse_result;
}
element * parse_labels(char *string, int extensions, element *reference_list, element *note_list) {

	yycontext *context = create_parsing_context(string, extensions, reference_list, note_list, NULL);
	
    yyparsefrom(context, yy_AutoLabels);    /* third pass, to collect labels */
	element *labels = context->state->labels;
	
	free_parsing_context(context);
	
    return labels;
}
element * parse_references(char *string, int extensions)
{
	yycontext *context = create_parsing_context(string, extensions, NULL, NULL, NULL);
	
    yyparsefrom(context, yy_References);    /* first pass, just to collect references */
	element *references = context->state->references;
	
	free_parsing_context(context);
	
    return references;
}
element * parse_markdown(char *string, int extensions, element *reference_list, element *note_list, element *label_list) {

	yycontext *context = create_parsing_context(string, extensions, reference_list, note_list, label_list);
	
    yyparsefrom(context, yy_Doc);
	element *parse_result = context->state->parse_result;
	
	free_parsing_context(context);

    return parse_result;
}
예제 #7
0
mdp_element *parse_references(char *string, int extensions) {
	syntax_extensions = extensions;

	char *oldcharbuf = charbuf;
	charbuf = string;
	// First pass to collect references
	yyparsefrom(yy_References);
	charbuf = oldcharbuf;

	return references;
}
예제 #8
0
element * parse_references(char *string, int extensions) {

    char *oldcharbuf;
    syntax_extensions = extensions;

    oldcharbuf = charbuf;
    charbuf = string;
    yyparsefrom(yy_References);    /* first pass, just to collect references */
    charbuf = oldcharbuf;

    return references;
}
예제 #9
0
mdp_element *parse_content(char *string, int extensions, mdp_element *reference_list, mdp_element *note_list) {
	syntax_extensions = extensions;
	references = reference_list;
	notes = note_list;

	char *oldcharbuf = charbuf;
	charbuf = string;

	yyparsefrom(yy_Doc);

	charbuf = oldcharbuf;          /* restore charbuf to original value */
	return parse_result;
}
예제 #10
0
element * parse_markdown_for_opml(char *string, int extensions) {

    char *oldcharbuf;
    syntax_extensions = extensions;

    oldcharbuf = charbuf;
    charbuf = string;

    yyparsefrom(yy_DocForOPML);

    charbuf = oldcharbuf;          /* restore charbuf to original value */
    return parse_result;

}
예제 #11
0
element * parse_metadata_only(char *string, int extensions) {

    char *oldcharbuf;
    syntax_extensions = extensions;

    oldcharbuf = charbuf;
    charbuf = string;

    yyparsefrom(yy_MetaDataOnly);

    charbuf = oldcharbuf;          /* restore charbuf to original value */
    return parse_result;

}
예제 #12
0
element * parse_notes(char *string, int extensions, element *reference_list) {

	yycontext *context = create_parsing_context(string, extensions, reference_list, NULL, NULL);
	element *notes = NULL;
	
    if (extension(context->state, EXT_NOTES)) {
        yyparsefrom(context, yy_Notes);     /* second pass for notes */
		notes = context->state->notes;
    }
	
	free_parsing_context(context);

    return notes;
}
예제 #13
0
element * parse_labels(char *string, int extensions, element *reference_list, element *note_list) {

    char *oldcharbuf;
    syntax_extensions = extensions;
    references = reference_list;
    notes = note_list;
    labels = NULL;

    oldcharbuf = charbuf;
    charbuf = string;
    yyparsefrom(yy_AutoLabels);    /* third pass, to collect labels */
    charbuf = oldcharbuf;

    return labels;
}
예제 #14
0
mdp_element *parse_notes(char *string, int extensions, mdp_element *reference_list) {
	notes = NULL;
	syntax_extensions = extensions;

	if (extension(MDP_EXT_NOTES)) {
		char *oldcharbuf = charbuf;
		references = reference_list;
		charbuf = string;
		// Second pass to collect notes
		yyparsefrom(yy_Notes);
		charbuf = oldcharbuf;
	}

	return notes;
}
예제 #15
0
element * parse_notes(char *string, int extensions, element *reference_list) {

    char *oldcharbuf;
    notes = NULL;
    syntax_extensions = extensions;

    if (extension(EXT_NOTES)) {
        references = reference_list;
        oldcharbuf = charbuf;
        charbuf = string;
        yyparsefrom(yy_Notes);     /* second pass for notes */
        charbuf = oldcharbuf;
    }

    return notes;
}
예제 #16
0
element * parse_markdown_with_metadata(char *string, int extensions, element *reference_list, element *note_list, element *label_list) {

    yycontext *context = create_parsing_context(string, extensions, reference_list, note_list, label_list);
	context->state->start_time = clock();
	
	yyparsefrom(context, yy_DocWithMetaData);
	
	element *parse_result = context->state->parse_result;
	int is_aborted = context->state->parse_aborted;
	
	free_parsing_context(context);
	
    if (is_aborted) {
        free_element_list(parse_result);
        return NULL;
    }

    return parse_result;

}
예제 #17
0
element * parse_markdown(char *string, int extensions, element *reference_list, element *note_list, element *label_list) {

    char *oldcharbuf;
    syntax_extensions = extensions;
    references = reference_list;
    notes = note_list;
    labels = label_list;

    oldcharbuf = charbuf;
    charbuf = string;

    yyparsefrom(yy_Doc);

    charbuf = oldcharbuf;          /* restore charbuf to original value */

/*    if (parse_aborted) {
        free_element_list(parse_result);
        return NULL;
    }*/

    return parse_result;

}