1/*===-- helpers.c - tool for testing libLLVM and llvm-c API ---------------===*\
2|* *|
3|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
4|* Exceptions. *|
5|* See https://llvm.org/LICENSE.txt for license information. *|
6|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
7|* *|
8|*===----------------------------------------------------------------------===*|
9|* *|
10|* Helper functions *|
11|* *|
12\*===----------------------------------------------------------------------===*/
13
14#include <stdio.h>
15#include <string.h>
16
17#define MAX_TOKENS 512
18#define MAX_LINE_LEN 1024
19
20void llvm_tokenize_stdin(void (*cb)(char **tokens, int ntokens)) {
21 char line[MAX_LINE_LEN];
22 char *tokbuf[MAX_TOKENS];
23
24 while (fgets(s: line, n: sizeof(line), stdin)) {
25 int c = 0;
26
27 if (line[0] == ';' || line[0] == '\n')
28 continue;
29
30 while (c < MAX_TOKENS) {
31 tokbuf[c] = strtok(s: c ? NULL : line, delim: " \n");
32 if (!tokbuf[c])
33 break;
34 c++;
35 }
36 if (c)
37 cb(tokbuf, c);
38 }
39}
40