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