diff options
| author | Dan Willemsen <dwillemsen@google.com> | 2020-06-26 19:20:26 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-26 19:20:26 -0700 |
| commit | 10cc982b563c19890872b73e6d8fb44aeda646ae (patch) | |
| tree | 6b5075e832cbdf2a7996a25a26659363527b6e4c /src/func.h | |
| parent | 003cf51e9b6da48063c90cf4c6710fde103c9c4a (diff) | |
| parent | 979e7ae6e417ae4ee45e835104b66191ae16a14c (diff) | |
| download | platform_build_kati-10cc982b563c19890872b73e6d8fb44aeda646ae.tar.gz platform_build_kati-10cc982b563c19890872b73e6d8fb44aeda646ae.tar.bz2 platform_build_kati-10cc982b563c19890872b73e6d8fb44aeda646ae.zip | |
Merge pull request #199 from danw/refactor
Refactor source tree into directories
Diffstat (limited to 'src/func.h')
| -rw-r--r-- | src/func.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/func.h b/src/func.h new file mode 100644 index 0000000..72f90fd --- /dev/null +++ b/src/func.h @@ -0,0 +1,66 @@ +// Copyright 2015 Google Inc. All rights reserved +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef FUNC_H_ +#define FUNC_H_ + +#include <memory> +#include <string> +#include <vector> + +#include "expr.h" +#include "loc.h" + +using namespace std; + +struct FuncInfo { + const char* name; + void (*func)(const vector<Value*>& args, Evaluator* ev, string* s); + int arity; + int min_arity; + // For all parameters. + bool trim_space; + // Only for the first parameter. + bool trim_right_space_1st; +}; + +void InitFuncTable(); +void QuitFuncTable(); + +FuncInfo* GetFuncInfo(StringPiece name); + +struct FindCommand; + +enum struct CommandOp { + SHELL, + FIND, + READ, + READ_MISSING, + WRITE, + APPEND, +}; + +struct CommandResult { + CommandOp op; + string shell; + string shellflag; + string cmd; + unique_ptr<FindCommand> find; + string result; + Loc loc; +}; + +const vector<CommandResult*>& GetShellCommandResults(); + +#endif // FUNC_H_ |
