Line data Source code
1 : /**
2 : * Copyright Soramitsu Co., Ltd. 2017 All Rights Reserved.
3 : * http://soramitsu.co.jp
4 : *
5 : * Licensed under the Apache License, Version 2.0 (the "License");
6 : * you may not use this file except in compliance with the License.
7 : * You may obtain a copy of the License at
8 : *
9 : * http://www.apache.org/licenses/LICENSE-2.0
10 : *
11 : * Unless required by applicable law or agreed to in writing, software
12 : * distributed under the License is distributed on an "AS IS" BASIS,
13 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 : * See the License for the specific language governing permissions and
15 : * limitations under the License.
16 : */
17 :
18 : #include "parser.hpp"
19 :
20 : namespace parser {
21 :
22 : bool isIntNumber(const std::string &s) {
23 0 : return !s.empty()
24 0 : && std::find_if(
25 : s.begin(), s.end(), [](char c) { return not std::isdigit(c); })
26 0 : == s.end();
27 : }
28 :
29 : boost::optional<std::string> parseFirstCommand(std::string line) {
30 0 : auto vec = split(line);
31 0 : if (vec.size() == 0) {
32 0 : return boost::none;
33 : }
34 0 : return vec[0];
35 0 : }
36 :
37 : std::vector<std::string> split(std::string line) {
38 0 : std::transform(line.begin(), line.end(), line.begin(), ::tolower);
39 0 : std::istringstream iss(line);
40 0 : return {std::istream_iterator<std::string>{iss},
41 0 : std::istream_iterator<std::string>{}};
42 0 : }
43 : } // namespace parser
|