mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
adding pegmarkdown support library.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5953 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
4413536926
commit
3be22536df
107 changed files with 20038 additions and 0 deletions
74
supportlibs/pegmarkdown/utility_functions.h
Normal file
74
supportlibs/pegmarkdown/utility_functions.h
Normal file
|
@ -0,0 +1,74 @@
|
|||
#ifndef UTILITY_FUNCTIONS_H
|
||||
#define UTILITY_FUNCTIONS_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <glib.h>
|
||||
|
||||
#include "markdown_peg.h"
|
||||
|
||||
/* utility_functions.h - List manipulation functions, element
|
||||
* constructors, and macro definitions for leg markdown parser. */
|
||||
|
||||
|
||||
/* cons - cons an element onto a list, returning pointer to new head */
|
||||
element * cons(element *new, element *list);
|
||||
|
||||
/* reverse - reverse a list, returning pointer to new list */
|
||||
element *reverse(element *list);
|
||||
/* concat_string_list - concatenates string contents of list of STR elements.
|
||||
* Frees STR elements as they are added to the concatenation. */
|
||||
GString *concat_string_list(element *list);
|
||||
/**********************************************************************
|
||||
|
||||
Global variables used in parsing
|
||||
|
||||
***********************************************************************/
|
||||
|
||||
extern char *charbuf; /* Buffer of characters to be parsed. */
|
||||
extern element *references; /* List of link references found. */
|
||||
extern element *notes; /* List of footnotes found. */
|
||||
extern element *parse_result; /* Results of parse. */
|
||||
extern int syntax_extensions; /* Syntax extensions selected. */
|
||||
|
||||
/**********************************************************************
|
||||
|
||||
Auxiliary functions for parsing actions.
|
||||
These make it easier to build up data structures (including lists)
|
||||
in the parsing actions.
|
||||
|
||||
***********************************************************************/
|
||||
|
||||
/* mk_element - generic constructor for element */
|
||||
element * mk_element(int key);
|
||||
|
||||
/* mk_str - constructor for STR element */
|
||||
element * mk_str(char *string);
|
||||
|
||||
/* mk_str_from_list - makes STR element by concatenating a
|
||||
* reversed list of strings, adding optional extra newline */
|
||||
element * mk_str_from_list(element *list, bool extra_newline);
|
||||
|
||||
/* mk_list - makes new list with key 'key' and children the reverse of 'lst'.
|
||||
* This is designed to be used with cons to build lists in a parser action.
|
||||
* The reversing is necessary because cons adds to the head of a list. */
|
||||
element * mk_list(int key, element *lst);
|
||||
|
||||
/* mk_link - constructor for LINK element */
|
||||
element * mk_link(element *label, char *url, char *title);
|
||||
/* extension = returns true if extension is selected */
|
||||
bool extension(int ext);
|
||||
|
||||
/* match_inlines - returns true if inline lists match (case-insensitive...) */
|
||||
bool match_inlines(element *l1, element *l2);
|
||||
|
||||
/* find_reference - return true if link found in references matching label.
|
||||
* 'link' is modified with the matching url and title. */
|
||||
bool find_reference(link *result, element *label);
|
||||
|
||||
/* find_note - return true if note found in notes matching label.
|
||||
if found, 'result' is set to point to matched note. */
|
||||
|
||||
bool find_note(element **result, char *label);
|
||||
|
||||
#endif
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue