12bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg/*===-- helpers.c - tool for testing libLLVM and llvm-c API ---------------===*\ 22bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* *| 32bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* The LLVM Compiler Infrastructure *| 42bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* *| 52bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* This file is distributed under the University of Illinois Open Source *| 62bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* License. See LICENSE.TXT for details. *| 72bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* *| 82bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*===----------------------------------------------------------------------===*| 92bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* *| 102bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* Helper functions *| 112bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* *| 122bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg\*===----------------------------------------------------------------------===*/ 132bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 142bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#include "llvm-c-test.h" 152bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#include <stdio.h> 162bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#include <string.h> 172bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 182bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#define MAX_TOKENS 512 192bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#define MAX_LINE_LEN 1024 202bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 212bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborgvoid tokenize_stdin(void (*cb)(char **tokens, int ntokens)) { 222bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg char line[MAX_LINE_LEN]; 232bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg char *tokbuf[MAX_TOKENS]; 242bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 252bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg while (fgets(line, sizeof(line), stdin)) { 262bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg int c = 0; 272bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 282bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg if (line[0] == ';' || line[0] == '\n') 292bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg continue; 302bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg 312bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg while (c < MAX_TOKENS) { 322bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg tokbuf[c] = strtok(c ? NULL : line, " \n"); 332bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg if (!tokbuf[c]) 342bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg break; 352bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg c++; 362bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg } 372bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg if (c) 382bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg cb(tokbuf, c); 392bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg } 402bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg} 41