summaryrefslogtreecommitdiff
path: root/src/fspec/ragel/lexer-expr.h
blob: 904736d95048033f1e0ea6ab2708dd2b460d15f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include <fspec/memory.h>

#include <stdbool.h>

struct fspec_expr;
struct fspec_expr {
   struct {
      size_t (*read)(struct fspec_expr *lexer, void *input, const size_t size, const size_t nmemb);
      size_t (*write)(struct fspec_expr *lexer, const void *output, const size_t size, const size_t nmemb);
   } ops;

   struct {
      struct fspec_mem input;
   } mem;
};

bool
fspec_expr_parse(struct fspec_expr *lexer, const char *name);