Skip to content

Commit 3cd3c2f

Browse files
authoredAug 16, 2023
Expression 四则运算 (oceanbase#233)
### What problem were solved in this pull request? Problem: close oceanbase#229 当前的词法分析语法分析非常简单,那当遇到比较复杂的词法分析语法分析题目,比如表达式,有些同学就难以入手 ### What is changed and how it works? 增加一个支持四则运算的功能,关键字是calc,虽然与标准的SQL不同,但是可以作为学习表达式入门使用。 使用示例: ``` (base) build_debug $ ./bin/observer -f ../etc/observer.ini -P cli Successfully load ../etc/observer.ini miniob > calc 2*(2*(2+3)); 2*(2*(2+3)) 20 miniob > calc (1+2) * (2 * (20+ -(5*1))) (1+2) * (2 * (20+ -(5*1))) 90 miniob > calc 1, 2, 3; 1 | 2 | 3 1 | 2 | 3 miniob > calc 1 + 2 - 3+4; 1 + 2 - 3+4 4 miniob > calc 2* 4; 2* 4 8 miniob > calc 1, 2, 3; 1 | 2 | 3 1 | 2 | 3 miniob > calc 1 + 2 - 3+4; 1 + 2 - 3+4 4 miniob > calc 2* 4; 2* 4 8 ```
1 parent 3896f77 commit 3cd3c2f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2793
-1266
lines changed
 

‎.github/ISSUE_TEMPLATE/feature_request.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Feature request
33
about: Suggest an idea for this project
44
title: ''
5-
labels: ''
5+
labels: feature
66
assignees: ''
77

88
---

‎CMakeLists.txt

+9-10
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,16 @@ IF (CONCURRENCY)
5353
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -DCONCURRENCY")
5454
ADD_DEFINITIONS(-DCONCURRENCY)
5555
ENDIF (CONCURRENCY)
56-
# test coverage
57-
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fprofile-arcs -ftest-coverage")
58-
SET(CMAKE_CXX_FLAGS ${CMAKE_COMMON_FLAGS})
59-
SET(CMAKE_C_FLAGS ${CMAKE_COMMON_FLAGS})
60-
MESSAGE(STATUS "CMAKE_CXX_FLAGS is " ${CMAKE_CXX_FLAGS})
6156

6257
MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID is " ${CMAKE_CXX_COMPILER_ID})
6358
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
64-
ADD_LINK_OPTIONS(-static-libgcc -static-libstdc++)
59+
ADD_LINK_OPTIONS(-static-libgcc -static-libstdc++)
6560
ENDIF()
6661

6762
IF (ENABLE_ASAN)
68-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
69-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
63+
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
7064
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
71-
ADD_LINK_OPTIONS(-static-libasan)
65+
ADD_LINK_OPTIONS(-static-libasan)
7266
ENDIF()
7367
ENDIF()
7468

@@ -106,9 +100,14 @@ ADD_SUBDIRECTORY(benchmark)
106100
ADD_SUBDIRECTORY(tools)
107101

108102
IF(WITH_UNIT_TESTS)
103+
SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fprofile-arcs -ftest-coverage")
109104
enable_testing()
110105
ADD_SUBDIRECTORY(unittest)
111-
ENDIF()
106+
ENDIF(WITH_UNIT_TESTS)
107+
108+
SET(CMAKE_CXX_FLAGS ${CMAKE_COMMON_FLAGS})
109+
SET(CMAKE_C_FLAGS ${CMAKE_COMMON_FLAGS})
110+
MESSAGE(STATUS "CMAKE_CXX_FLAGS is " ${CMAKE_CXX_FLAGS})
112111

113112
INSTALL(DIRECTORY etc DESTINATION .
114113
FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

0 commit comments

Comments
 (0)
Please sign in to comment.