blob: c7a81842bbebb71ef4e2cbe2a44e11f6defe9abf [file] [log] [blame]
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
#ifndef GO_SYSTEM_H
#define GO_SYSTEM_H
#include <algorithm>
#include <string>
#include <list>
#include <map>
#include <set>
#include <vector>
#include <sstream>
#include <climits>
#include <ctype.h>
#include <stdarg.h>
# include <unordered_map>
# include <unordered_set>
# define Unordered_map(KEYTYPE, VALTYPE) \
std::unordered_map<KEYTYPE, VALTYPE>
# define Unordered_map_hash(KEYTYPE, VALTYPE, HASHFN, EQFN) \
std::unordered_map<KEYTYPE, VALTYPE, HASHFN, EQFN>
# define Unordered_set(KEYTYPE) \
std::unordered_set<KEYTYPE>
# define Unordered_set_hash(KEYTYPE, HASHFN, EQFN) \
std::unordered_set<KEYTYPE, HASHFN, EQFN>
#include <iostream>
#include <assert.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#define go_assert assert
#define _(x) x
#include "llvm-includes.h"
#define go_unreachable() llvm_unreachable("unreachable")
#define ARRAY_SIZE(A) (sizeof (A) / sizeof ((A)[0]))
#define IS_ABSOLUTE_PATH(x) \
llvm::sys::path::is_absolute(llvm::Twine(x))
#define HOST_BITS_PER_WIDE_INT 64
#define HOST_WIDE_INT long
#define ISALNUM(x) isalnum(x)
extern const char *lbasename(const char *);
extern const char *xstrerror(int);
extern bool IS_DIR_SEPARATOR(char);
extern bool ISXDIGIT(char);
#define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
#endif // !defined(GO_SYSTEM_H)