shortcode/shortcodes.h
2023-07-12 22:22:22 -03:00

55 lines
849 B
C

#ifndef SHORTCODES_H
#define SHORTCODES_H
// A chunk is a reference to a piece of string
// from "start" relative to its start
// and goes on for len characters.
struct chunk
{
int start, len;
};
typedef struct chunk chunk;
// An error
struct sc_error
{
int position;
int code;
};
typedef struct sc_error sc_error;
// Describes a parsed shortcode
struct shortcode
{
chunk whole;
chunk name;
chunk data;
char matching;
chunk argnames[100];
chunk argvals[100];
int argcount;
};
typedef struct shortcode shortcode;
struct sc_result
{
shortcode sc[100];
sc_error errors[10];
int errcount;
};
typedef struct sc_result sc_result;
// Error codes
/* You are closing the wrong shortcode.
Example:
{{% foo %}} {{% /bar %}}
*/
#define ERR_MISMATCHED_CLOSING_TAG 1;
sc_result parse(char *);
#endif