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 llvm_tokenize_stdin(void (* cb)(char ** tokens,int ntokens))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(line, 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(c ? NULL : line, " \n"); 32 if (!tokbuf[c]) 33 break; 34 c++; 35 } 36 if (c) 37 cb(tokbuf, c); 38 } 39 } 40